2010-08-20 6 views
25

मैं निम्नलिखित JSP है:अभिव्यक्ति भाषा और ग्रहण चेतावनी: "आइटम" क्रम भाव का समर्थन नहीं करता

Warning [line 10]: "value" does not support runtime expressions 
Warning [line 13]: "items" does not support runtime expressions 
... 

:

<%@ page contentType="text/html" pageEncoding="UTF-8"%> 
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %> 
<%@ page isELIgnored="false"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title><c:out value="${it.title}"/></title> 
    </head> 
    <body> 
     <c:forEach var="speaker" items="${it.speakers}" varStatus="stat"> 
      <ul> 
       <li><c:out value="${speaker.person.firstName}" /> <c:out value="${speaker.person.lastName}" />, <c:out value="${speaker.person.address.city.zip}" /> <c:out value="${speaker.person.address.city.name}" /></li> 
      </ul> 
     </c:forEach> 
    </body> 
</html> 

ग्रहण मुझे मेरे कोड में ईएल भाव के प्रत्येक उदाहरण के बारे में चेतावनी दी है हालांकि यह सच नहीं है, ईएल सर्वर द्वारा सही ढंग से मूल्यांकन किया जाता है।

क्या कोई मुझे सही दिशा में संकेत दे सकता है कि ग्रहण उन ईएल अभिव्यक्तियों के बारे में मुझे चेतावनी क्यों दे रहा है?

उत्तर

53

आपका टैगलिब निर्देश एक जेएसटीएल 1.0 टैगलिब आयात करता है। यह होना चाहिए JSTL 1.1 के बजाय (यूआरआइ में अंतर पर ध्यान दें): परिवर्तन इस:

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

हाँ करने के लिए:

<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%> 

आशा है कि यह आप के लिए काम करता है

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

और सुनिश्चित करें कि web.xml को कम से कम सर्वलेट 2.4 – BalusC

+0

@ बालससी के रूप में घोषित किया गया है, मुझे यह अपवाद मिल रहा है और ऐसा लगता है कि यह आपकी टिप्पणी से संबंधित है: org.apache.jasper.JasperException: पूर्ण यूरी: http: // java.sun.com/jsp/jstl/core को किसी भी web.xml या इस एप्लिकेशन के साथ तैनात जार फ़ाइलों में हल नहीं किया जा सकता है – abbas

+0

क्या आप मेरी मदद करने में मदद कर सकते हैं? – abbas

4

संभव समाधान (found here):

ट्विन पुस्तकालय

JSTL टैग पुस्तकालयों दो संस्करणों जो रास्ता में केवल अलग में आते हैं वे क्रम के उपयोग विशेषता के लिए अभिव्यक्ति का समर्थन मान।

जेएसटीएल-आरटी टैग लाइब्रेरी में, अभिव्यक्ति पृष्ठ की स्क्रिप्टिंग भाषा में निर्दिष्ट हैं। यह है कि वर्तमान में वर्तमान टैग लाइब्रेरी में चीजें कैसे काम करती हैं।

जेएसटीएल-ईएल टैग लाइब्रेरी में, अभिव्यक्ति जेएसटीएल अभिव्यक्ति भाषा में निर्दिष्ट हैं। ईएल के वाक्यविन्यास में एक अभिव्यक्ति एक स्ट्रिंग अक्षर है।

ईएल टैग लाइब्रेरी का उपयोग कर जब आप एक विशेषता के मान के लिए एक पटकथा भाषा अभिव्यक्ति पारित नहीं कर सकते हैं। यह नियम को अनुवाद समय पर अभिव्यक्ति के वाक्यविन्यास को सत्यापित करने के लिए संभव बनाता है।

तो हो सकता है कि आपका ग्रहण और सर्वर विभिन्न टैग लाइब्रेरी का उपयोग करें।

2

इस कोशिश । मुझे यह www.csdn.net से मिला।

+2

यह बिल्कुल ** सही ** समाधान नहीं है। प्रस्तावित यूआरआई जेएसटीएल "प्रोटोटाइप" संस्करण से है। आपको * कम से कम * जेएसटीएल 1.1 में अपग्रेड करना चाहिए। एक्स्टाव के उत्तर और http://stackoverflow.com/tags/jstl/info भी देखें – BalusC

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