如何使用 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 上运行时出错。
最佳答案
这仅在 EL 2.2 之后才受支持。这反过来与 Servlet 3.0 齐头并进。因此,如果您确保使用与 Servlet 3.0 兼容的 web.xml
声明来定位与 Servlet 3.0 兼容的容器(Tomcat 7、Glassfish 3 等),那么它将按照您的预期方式工作。但是,如果您的目标是旧版本的 servlet 容器,或者有旧版本甚至错误的 web.xml
根声明,那么它将无法工作。
另见:
更新:您的特定问题可能是由 Tomcat 7 中的错误引起的。它没有根据给定的参数找到正确的重载方法。您的表达式在 Glassfish 3 中运行良好。所有非重载方法在 Tomcat 中都应该运行良好。
关于jsp - 表达式语言中的调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11273626/