我在 jspx 文件中使用 JSTL 进行类似的条件检查
<jsp:root version="2.0"
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:fn="http://java.sun.com/jsp/jstl/functions">
<c:choose>
<c:when test="${fn:startsWith(check.defApplication, 'Mail')}">
<c:set var="mySet" value="messages"/>
</c:when>
<c:otherwise>
<c:set var="mySet" value="messagesagain"/>
</c:otherwise>
</c:choose>
但是它抛出错误
无法在 uri 为 http://java.sun.com/jsp/jstl/core 的顶级域名中定位 el 函数 startsWith
el函数是为uri http://java.sun.com/jsp/jstl/functions定义的但它仍然在错误消息中给出了错误的 uri。 我更改了 uri 声明中的顺序,但错误消息保持不变。
uri 已在 web.xml 中正确定义。 上面的代码在 tomcat 上运行良好,但在 Websphere 7.0.0.19 上出错。
知道可能出了什么问题吗?
最佳答案
我不确定问题的真正原因。然而,以下陈述表明有些事情并不完全正确:
The uri is properly defined in web.xml.
您应该不在您的web.xml
中定义它们。只需将 JAR 文件放在运行时类路径中就足够了。以防万一,您还应该不提取 JSTL JAR 文件并将其松散内容放在您的网络应用程序的 /WEB-INF
中。
The above code works perfectly fine on tomcat, but gives error on Websphere 7.0.0.19.
Websphere 附带了自己的 JSTL 库。此冲突表明您已将 JSTL JAR 文件删除到 webapp 的 /WEB-INF/lib
中。你想删除它们并将它们放在 Tomcat 自己的 /lib
文件夹中。
另见:
关于jsp - websphere上的jSTL el函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7557713/