2009-02-27 17 views
6

के लिए अपवाद फेंकता है मैं जेटी में एक एप्लिकेशन चलाने की कोशिश कर रहा हूं जो टॉमकैट 5.5 में ठीक है। ऐप सर्वलेट 2.4 और जेएसपी 2.0 का उपयोग करता है।जेट्टी 6 में जैस्पर जेएसटीएल टैग

घाट/जैस्पर इस अपवाद फेंक है:

org.apache.jasper.JasperException: /WEB-INF/tiles/layout/main.jsp(85,55) PWC6340: According to the TLD, rtexprvalue is true, and deferred-value is specified for the attribute items of the tag handler org.apache.taglibs.standard.tag.rt.core.ForTokensTag, but the argument for the setter method is not a java.lang.Object 

एक अजीब बात है, मैं टीएलडी कहीं भी नहीं मिल रहा। ऐसा लगता है कि यह जादू से प्राप्त कर रहा है जिसे मैं समझ नहीं पा रहा हूं। क्या यह संभवतः गलत टीएलडी प्राप्त कर रहा है?

यह कहना मुश्किल है कि यह कहां लोड हो रहा है org.apache.taglibs.standard.tag.rt.core.ForTokensTag। ग्रहण परियोजना के लोड पथ में नहीं मिला है।

किसी भी संकेत का स्वागत करते हैं ...

उत्तर

6

जेट्टी अपने स्वयं के JSTL पुस्तकालय भी शामिल है और Jakrta taglib के मानक और कोर जार शामिल करने के लिए कोई जरूरत नहीं है।

यदि आप अपने वेब एप्लिकेशन में जकार्टैट टैगलिब के जार डालते हैं तो टॉकेंस टैग में एक संघर्ष होता है जो इस त्रुटि का कारण बनता है जबकि अन्य टैग अच्छी तरह से काम करते हैं। मेरा सुझाव है कि या तो अपने वेब ऐप से जकार्ता टैगलिब कार्यान्वयन को हटा दें और जेटी पर भरोसा करें, या टोकेंस के लिए उपयोग करना बंद करें।

4

@ गॉस सही है, c:forTokens के उपयोग से बचने का एकमात्र तरीका लगता है। c:forEach का उपयोग कर c:forTokens को

उदाहरण विकल्प:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> 

<c:forTokens items="${input}" delims="," var="i"> 
    <!-- do stuff with ${i} --> 
</c:forTokens> 

<c:forEach items="${fn:split(input,',')}" var="i"> 
    <!-- do stuff with ${i} --> 
</c:forEach> 
+0

जानकारी के लिए @Guss @Gareth धन्यवाद, मैं एक ही मुद्दा था। – jomaora

संबंधित मुद्दे