2010-08-20 3 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> 

이클립스 내 코드에서 EL 표현식의에 대한 모든 인스턴스 나 경고를 그러나 이것이 사실이 아니기 때문에 EL은 서버에 의해 올바르게 평가됩니다.

사람은 일식 그 EL 표현식에 대해 저를 경고하는 이유를 올바른 방향으로 날 힌트 수 있습니까?

답변

53

taglib 지시어는 JSTL 1.0 taglib을 가져옵니다. 당신을 위해 작동

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

희망 :

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

yes로 :이 변화 :이에게 시도

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

그리고 web.xml이 적어도 서블릿 2.4로 선언되었는지 확인하십시오. – BalusC

+0

@BalusC이 예외가 발생하며 귀하의 의견과 관련이있는 것 같습니다 : org.apache.jasper.JasperException : 절대 URI : http : // web.xml 또는이 응용 프로그램과 함께 배포 된 jar 파일에서 java.sun.com/jsp/jstl/core를 확인할 수 없습니다. – abbas

+0

수행해야 할 작업을 도와 줄 수 있습니까? – abbas

4

가능한 해결 방법 (found here) :

트윈 도서관

태그 라이브러리 길 만 다른 두 개의 버전에서 제공되는 JSTL들이 표현 속성에 대한 런타임의 사용을 지원 값.

페이지의 스크립팅 언어에 표현식이 지정됩니다. JSTL-RT 태그 라이브러리에서 표현식이 지정됩니다. 현재 현재 태그 라이브러리에서 현재 작동하는 방식은 입니다.

JSTL-EL 태그 라이브러리에서 표현식은 JSTL 표현식 언어로 지정됩니다. 표현식은 EL 구문의 문자열 리터럴입니다. 는 EL 태그 라이브러리를 사용하는 경우

당신은 속성의 값을 스크립트 언어 표현을 전달할 수 없습니다. 이 규칙을 사용하면 번역시 표현식을 표현식의 유효성을 검사 할 수 있습니다.

그래서 아마 이클립스와 서버는 서로 다른 태그 라이브러리를 사용합니다.

2

: 그것은 JSTL 1.1 대신 (URI의 차이에주의)해야한다 . 나는 www.csdn.net에서 이것을 얻었다.

+2

이것은 절대적으로 ** 올바른 ** 해결책이 아닙니다. 제안 된 URI는 JSTL "프로토 타입"버전에서 온 것입니다. * 적어도 JSTL 1.1 이상으로 업그레이드해야합니다. axtavt의 답변 및 http://stackoverflow.com/tags/jstl/info도 참조하십시오. – BalusC

관련 문제