JSP: JSTL का <c: out> टैग


110

एक JSP पेज लिखना, वास्तव में क्या करता <c:out>है? मैंने देखा है कि निम्नलिखित दोनों का परिणाम समान है:

<p>The person's name is <c:out value="${person.name}" /></p>
<p>The person's name is ${person.name}</p>

जवाबों:


153

c:out HTML वर्णों से बच जाता है ताकि आप क्रॉस-साइट स्क्रिप्टिंग से बच सकें।

अगर person.name = <script>alert("Yo")</script>

स्क्रिप्ट को दूसरे मामले में निष्पादित किया जाएगा, लेकिन उपयोग करते समय नहीं c:out


2
केवल अगर 'एस्केपएक्सएमएल' यह सही है (निश्चित रूप से यदि यह डिफ़ॉल्ट रूप से है तो निश्चित नहीं)
क्रिस सेरा

17
मेरा मानना ​​है कि यह डिफ़ॉल्ट रूप से सही है।
ज़ैक द ह्यूमन

7
NB यह XML नहीं HTML से बच जाता है। JSTL की अधिक कष्टप्रद सूक्ष्मताओं में से एक। मैं हमेशा अपना HTML एस्केप EL fn लिखता हूं।
एडम जेंट

4
विशेषता नाम केस संवेदी है, इसलिए यह एस्केपएक्सएमएल = "सच" नहीं है एस्केपएक्सएमएल
मार्क चोरले

2
मुझे पता नहीं है कि इस उत्तर का नमूना क्या दिखा रहा है- क्या कोई स्पष्ट कर सकता है? इसमें एक "दूसरे मामले" का उल्लेख है, लेकिन मुझे वह नहीं दिखता है और मुझे c: out कोड में उपयोग नहीं किया जा रहा है।
IDDante

126

जैसा कि कहा जाएगा वैगनर, जेएसपी के पुराने संस्करण में आपको हमेशा c:outडायनामिक टेक्स्ट आउटपुट के लिए उपयोग करना चाहिए ।

इसके अलावा, इस वाक्यविन्यास का उपयोग करते हुए:

<c:out value="${person.name}">No name</c:out>

जब नाम शून्य हो तो आप "नो नेम" पाठ प्रदर्शित कर सकते हैं।


24
ठंडा! मैं नहीं जानता था कि।
एडम असहम

सहमत, शांत। शिक्षण और मदद के लिए धन्यवाद। मुझे नहीं पता था कि या तो। चीयर्स!
बी-पैसा

20
या <c: out value = "$ {person.name}" default = "No Name" />
gmustudent

2
JSR 52, रखरखाव रिलीज़ 2, पृष्ठ 22 "एक निकाय के साथ" देखें। लिंक: download.oracle.com/otndocs/jcp/jstl-1.2-mrel2-eval-oth-JSpec
Barett

1
@Barett। ठंडा। मुझे आश्चर्य है कि यह कभी भी ट्यूटोरियल या उदाहरण क्यों नहीं बनाता है। डिफ़ॉल्ट विशेषता IMO की तुलना में अधिक सुविधाजनक सिंटैक्स।
थिलो डेस


5

आप स्पष्ट रूप से एक एक्सट्रेल एक्सीलिमेंट मान का उपयोग करके एक्सएमएल संस्थाओं से बचने में सक्षम हो सकते हैं। FYI करें, यह डिफ़ॉल्ट रूप से "सत्य" है।


कुछ उदाहरण कोड वास्तव में इस उत्तर को पूर्ण बनाने में मदद करेंगे।
राचेल 21

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.