दिलचस्प पोस्ट
क्या होगा जब स्थानीय स्टोरेज भरा हुआ है? आईफ़ोन – UIView पर पारदर्शी आयत को देखने के लिए नीचे देखने के लिए एएसपी.Net में SQL इंजेक्शन की रोकथाम कैसे कोड और परीक्षण से एक रिश्तेदार फाइल को संदर्भित करने के लिए वितरण के लिए एक Android जार लाइब्रेरी बनाएं रीसाइक्लर व्यू के चयनित आइटम को कैसे उजागर करना है? एंड्रॉइड: आशय का उपयोग करके सादे पाठ साझा करें (सभी संदेश सेवा के लिए) दिनांक को परिवर्तित करने के लिए जीएमटी 0 क्या आप सी # को संकलित कर सकते हैं, इसलिए इसे रनटाइम पर .NET फ़्रेमवर्क की आवश्यकता नहीं है? git diff पर्याप्त नहीं दिखाता है एंड्रॉइड लेआउट को सभी स्क्रीन आकारों का समर्थन कैसे करें? स्ट्रिंग को द्विआधारी में अजगर में कनवर्ट करें एक्स 86 पर प्राकृतिक रूप से गठबंधन वाले परमाणु पर पूर्णांक असाइनमेंट क्यों है? बंडलों का उपयोग करते हुए एंड्रॉइड गतिविधियों के बीच आप छवियों (बिटमैप) को कैसे पारित करते हैं? VBA (एक्सेल) में पंक्तियों के माध्यम से लूप का सबसे प्रभावी / तेज़ तरीका क्या है?

ईएल अभिव्यक्ति भाषा में ऑब्जेक्ट कैसे एक्सेस करें $ {}

अगर मेरे पास एक है

ArrayList<Person> persons 

मैं इसे EL में कैसे उपयोग करूं?

 <c:foreach items="${what goes here??}" var="person">${person.title}</c:foreach> 

वेब के समाधान से एकत्रित समाधान "ईएल अभिव्यक्ति भाषा में ऑब्जेक्ट कैसे एक्सेस करें $ {}"

${foo} अभिव्यक्ति के पीछे JspContext#findAttribute() का उपयोग करता है, जो कि उनके प्राप्त getAttribute("foo") पद्धति के द्वारा HttpSession , HttpSession , HttpSession और PageContext में एट्रिब्यूट्स की खोज करता है, जिसमें JspContext#findAttribute() ${foo} JspContext#findAttribute() एट्रिब्यूट नाम "foo" और पहले गैर-रिक्त ऑब्जेक्ट देता है

इसलिए, यदि आप सर्वलेट में करते हैं

 ArrayList<Person> persons = getItSomehow(); request.setAttribute("persons", persons); // It's now available by ${persons} request.getRequestDispatcher("/WEB-INF/persons.jsp").forward(request, response); 

और यूआरएल के द्वारा इस page.jsp को कॉल करें, इसके बाद आप इसे पेज। page.jsp में page.jsp : page.jsp करने में सक्षम होंगे:

 <c:foreach items="${persons}" var="person"> ${person.title} <c:forEach> 

उपरोक्त भी उतना ही मान्य है जब आप उसे सत्र के दायरे में डालते हैं

 request.getSession().setAttribute("persons", persons); 

या यहां तक ​​कि आवेदन क्षेत्र में भी

 getServletContext().setAttribute("persons", persons); 

${person.title} में title लिए EL होगा, एक सार्वजनिक उदाहरण (स्थैतिक नहीं!) के लिए पूर्वनिर्धारित विधि की तरह नीचे की तरह Person वर्ग में get करें:

 public String getTitle() { return title; } 

क्षेत्र के title को जरूरी नहीं कि कक्षा में मौजूद होना जरूरी है (ताकि आप एक हार्डकोड स्ट्रिंग भी वापस कर सकते हैं और ${person.title} का उपयोग कर रख सकते हैं), और यह जरूरी नहीं कि एक उदाहरण फ़ील्ड (इसलिए यह भी हो सकता है स्थैतिक क्षेत्र, जब तक कि ग्रहक विधि स्वयं स्थिर नहीं है)।

केवल boolean ( Boolean नहीं!) गेटर्स के पास एक विशेष उपचार है; ईएल पूरी तरह से एक सार्वजनिक पद्धति के साथ प्रिक्सिंकित है, जिसके साथ उपसर्ग है I एक ${person.awesome} लिए उदाहरण:

 public boolean isAwesome() { return awesome; } 

यह भी देखें:

  • हमारे ईएल विकी पेज
  • सर्विसलेट कैसे काम करते हैं? इंस्टांटिएशन, सत्र, साझा वैरिएबल और मल्टीथ्रेडिंग
  • JSP फ़ाइलों में जावा कोड से बचने के लिए कैसे?
  • जेएसडीपी में जेडीपी पेज में एमडीसी और डीएओ पैटर्न का उपयोग करते हुए JDBC ResultSet सेट करें
  • ईएल $ {XY} सीधे स्क्रिप्टलेट में उपयोग करें <% XY%>
  • जावा अभिव्यक्ति की भाषा बूलीयन विशेषताओं को कैसे हल करती है? (जेएसएफ 1.2 में)
 <c:forEach var="item" items="${names}"> ${item.title} </c:forEach> 

names दृश्य के लिए उपलब्ध विशेषता के रूप में सेट में होना चाहिए

अगर आप अपनी सूची बनाने और उसके बाद अपने जेएसपी को अग्रेषित करने के लिए Servlets या Action class का उपयोग कर रहे हैं, तो आपको अपने सर्विसलेट या एक्शन क्लास में निम्नलिखित पंक्ति होने चाहिए।

 ArrayList<Person> names = "get from somewhere"; request.setAttribute("personNames",names); <c:foreach var="item" items="${personNames}"> ${item.title} </c:foreach>