【问题标题】:jstl el function error on webspherewebsphere上的jstl el函数错误
【发布时间】:2011-09-26 15:47:38
【问题描述】:

我在 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 的 tld 中找到 el 函数 startsWith

el 函数是为 uri http://java.sun.com/jsp/jstl/functions 定义的,但它仍然在错误消息中给出了错误的 uri。 我更改了 uri 声明中的顺序,但错误消息保持不变。

在 web.xml 中正确定义了 uri。 上述代码在 tomcat 上运行良好,但在 Websphere 7.0.0.19 上出现错误。

知道可能出了什么问题吗?

【问题讨论】:

    标签: jsp tomcat jstl websphere


    【解决方案1】:

    我不确定问题的真正原因。然而,以下陈述表明某些事情并不完全正确:

    在 web.xml 中正确定义了 uri。

    您应该在您的web.xml 中定义它们。只需在运行时类路径中包含 JAR 文件就足够了。以防万一,您还应该提取 JSTL JAR 文件并将其松散的内容放在 webapp 的 /WEB-INF 中。


    上述代码在 tomcat 上运行良好,但在 Websphere 7.0.0.19 上出现错误。

    Websphere 带有自己的 JSTL 库。此冲突表明您已将 JSTL JAR 文件放在 webapp 的 /WEB-INF/lib 中。您想删除它们并将它们放在 Tomcat 自己的 /lib 文件夹中。

    另见:

    【讨论】:

    • 感谢 BalusC,我删除了 jstl.jar 并且我的应用程序没有出现。但是我删除了 standard.jar 并且能够继续
    • 实际上我正在将我的应用程序移动到 websphere 7。得到一个新错误 jsp.error.attribute.invalidPrefix uikit。关于这个错误的任何想法?
    • standard.jar 也是 JSTL 的一部分。 JSTL wiki 页面中也提到了这一点(如果您已经阅读过)。至于新的错误,这无关紧要。如果您无法根据现有的 Google/Stackoverflow 资源提出新问题。
    • 即使我删除那些jar文件也会出现错误。但是,如果我删除那些jar文件并在c.tld中定义startsWith方法,则不会发生错误。如有任何问题请告诉我不见了 ?如果我删除那些 jstl tld 文件,我仍然会收到错误
    【解决方案2】:

    检查这个:https://www.ibm.com/developerworks/community/forums/html/topic?id=869d42f2-6ef6-4708-b5fd-dec19afe1f03&ps=25

    他们认为 webpshere 不允许在 web-inf 中运行 jsp

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-30
      • 1970-01-01
      • 2011-10-29
      相关资源
      最近更新 更多