2016-07-27 129 views
0

支持什么版本的EL和SET?我试图用Java表达式语言定义一组数据的

${{"cat", "dog", "giraffe"}} 

我得到以下异常:

javax.el.ELException: Failed to parse the expression [${{"cat", "dog", "giraffe"}] 
    org.apache.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:146) 
    org.apache.el.lang.ExpressionBuilder.build(ExpressionBuilder.java:172) 
    org.apache.el.lang.ExpressionBuilder.createValueExpression(ExpressionBuilder.java:217) 
    org.apache.el.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:67) 
    org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:1025) 
    org.apache.jsp.user_jsp._jspService(user_jsp.java:78) 
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 
+0

EL 3+,IIRC .... –

回答

0

哪个容器您使用的?下面是演示代码,在我的Tomcat的工作8.

<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %> 
<c:set var="animalList" value='${["cat","dog","giraffe"]}'/> 
<html> 
    <body> 
      <c:forEach items="${animalList}" var="animal"> 
       ${animal} 
      </c:forEach> 
    </body> 
</html> 
+0

我使用tomcat 7.0 –

1

表达式语言3.0支持列表,集合和地图。 Tomcat 7.0仅支持EL 2.2。这就是为什么我的脚本不工作。

+0

括号[]用于列表,括号{}用于集合。 –

相关问题