दिलचस्प पोस्ट
java arrays.sort 2d सरणी एंड्रॉइड स्क्रीन निर्देशांक कैसे कार्य करता है? 10 सेकंड के लिए पॉप-अप विलंब करें, केवल एक बार पॉप अप करें फ़ायरफ़ॉक्स में सापेक्ष स्थिति jQuery के UI Resizable भी रीसाइज़ करें रिवर्स <Input type = "file" /> के लिए एचटीएमएल सहायक @ संश्लेषित इंस्टेंस चर की दृश्यता क्या है? कैटमुल-रोम वक्र कोई cusps और कोई आत्म-चौराहों के साथ PHP में mysql_ * फ़ंक्शन का उपयोग क्यों नहीं किया जाना चाहिए? jQuery.ajax () विधि के async विकल्प पदावनत, अब क्या? हिस्टोग्राम प्लॉट के लिए डेटा प्राप्त करना शब्दों की सूची में से किसी के लिए PostgreSQL वाइल्डकार्ड निर्धारित मानदंड कैसे करें टाइप करने के लिए * टाइप करने के लिए मुझे टाइप ** का उपयोग करने की आवश्यकता क्यों है? ऑनलाइन HTTP क्लाइंट

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

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

ArrayList<Person> persons 

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

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

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

${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>