मेरे पास वेबलॉगिक 10.3.3 इंस्टॉल है और रिकर्सिव जेएसपी टैग के साथ समस्याएं प्रतीत होती हैं। इंटरनेट पर मुझे कुछ अन्य लोगों को एक ही समस्या का सामना करना पड़ा है (here और here), लेकिन कोई समाधान नहीं। कुछ लोग सुझाव देते हैं कि यह वेबलॉगिक 12 में तय है, या 9 में काम कर रहा था, लेकिन मैं इसकी पुष्टि नहीं कर सकता।वेबलॉगिक और रिकर्सिव जेएसपी टैग
एप्लिकेशन स्प्रिंग/स्प्रिंग रू/अपाचे टाइल्स/जेएसपीएक्स का उपयोग करके बनाया गया है।
public class Programme {
private String name;
private final List<Programme> programmes = new ArrayList<Programme>();
...(getter/setter)...
}
तो मैं इस तरह की एक Tagx है:
<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:coursedataimport="urn:jsptagdir:/WEB-INF/tags/coursedataimport" version="2.0">
<jsp:output omit-xml-declaration="yes" />
<jsp:directive.attribute name="programme" type="package.Programme" required="true" rtexprvalue="true" />
<c:out value="${programme.name}" />
<ul>
<c:forEach var="p" items="${programme.programmes}">
<li><coursedataimport:programme programme="${p}" /></li>
</c:forEach>
</ul>
</jsp:root>
यह काम नहीं करता मॉडल वर्ग कि प्रदर्शित किया जा रहा है की तरह कुछ है। पृष्ठ का अनुरोध करते समय, एप्लिकेशन कंटेनर क्रैश प्रतीत होता है (शायद कुछ स्टैक ओवरफ़्लो, लेकिन मुझे इसे लॉग में नहीं मिल रहा है), और एप्लिकेशन संदर्भ पुनः लोड किया गया है। टॉमकैट 7 में यह ठीक काम करता है।
अपवाद दिखाया कुछ इस तरह है, लेकिन मुझे यकीन है कि अगर यह संबंधित है नहीं कर रहा हूँ (क्योंकि यह त्रुटि पृष्ठ के बारे में बात):
[ServletContext @ 483,389,576 [एप्लिकेशन: एप्लिकेशन कान -0 मॉड्यूल : एपमुड्यूल पथ:/CONTEXTROOT spec-version: 2.5]] त्रुटि पृष्ठ की सेवा करते समय समस्या आई। org.springframework.web.util.NestedServletException: अनुरोध प्रसंस्करण विफल रहा; नेस्टेड अपवाद java.lang.ClassCastException: org.apache.tiles.ArrayStack org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet.java:894) org.springframework.web.servlet.FrameworkServlet.doGet पर (FrameworkServlet.java:779) पर javax.servlet.http.HttpServlet.service (HttpServlet.java:821) पर javax.servlet.http.HttpServlet.service (HttpServlet.java:707) पर ...
क्या किसी ने पहले इन मुद्दों का अनुभव किया है, या किसी को किसी फिक्स के बारे में पता है? इसे डीबग करने के तरीके, या रिकर्सिव टैग को कैसे कामयाब करने के बारे में कोई सुझाव (क्योंकि मैं एक पेड़ प्रदर्शित करना चाहता हूं, यह एक चुनौती है)। अग्रिम में धन्यवाद।
क्या आप प्रोग्राम टैग को बार-बार कॉल करने का प्रयास कर रहे हैं? मेरा भी वही मुद्दा है। रिकर्सिवली टैग टैग को कॉल करते समय यह टॉमकैट 6 में काम करता है, लेकिन वेबलॉगिक 11 में नहीं। –
हां, यह मुद्दा है। टॉमकैट इसके साथ ठीक काम करता है, लेकिन वेबलॉगिक एक पिटा है। हमें इस कोड को दोबारा लिखने के अलावा कभी भी समाधान नहीं मिला है, इसलिए यह रिकर्सिव टैग का उपयोग नहीं करता है। – MikeN