如何使用EL( Expression Language )在JSP中调用方法? 例如: c:forEach var="item" items="${listStr}" begin="0" end="2" step="2" p${item.indexOf("h")}/p/c:forEach 这里,item是java.lang.String类型的对象.这会在Tomcat上运行
例如:
<c:forEach var="item" items="${listStr}" begin="0" end="2" step="2"> <p>${item.indexOf("h")}</p> </c:forEach>
这里,item是java.lang.String类型的对象.这会在Tomcat上运行时导致错误.
这仅在EL 2.2之后得到支持.这与Servlet 3.0相辅相成.因此,如果您确保使用与Servlet 3.0兼容的web.xml声明来定位Servlet 3.0兼容容器(Tomcat 7,Glassfish 3等),那么它将按照您的预期方式工作.但是,如果您的目标是较旧的版本化servlet容器,或者具有较旧的版本化甚至是错误的web.xml根声明,那么它将无法工作.也可以看看:
> Our EL wiki page
更新:您的特定问题可能是由Tomcat 7中的错误引起的.它找不到基于给定参数的正确重载方法.您的表达式在Glassfish 3中运行良好.所有非重载方法在Tomcat中都可以正常工作.