gpt4 book ai didi

jsp - JodaTime JSP 标签库工作时出现异常

转载 作者:行者123 更新时间:2023-12-02 13:42:28 26 4
gpt4 key购买 nike

我正在尝试让 JodaTime 标签库在我的 Spring 3 MVC 应用程序中工作。

根据 website我应该能够将其放入我的 jsp 页面中并且它应该可以工作。

<%@taglib prefix="joda" uri="http://www.joda.org/joda/time/tags" %>
<% pageContext.setAttribute("now", new org.joda.time.DateTime()); %>
<joda:format value="${now}" style="SM" />

但是我遇到了这个异常:

org.apache.jasper.JasperException: /WEB-INF/jsp/reports/../taglibs.jspf(7,66) PWC6188: The absolute uri: http://www.joda.org/joda/time/tags cannot be resolved in either web.xml or the jar files deployed with this application

我正在运行 Glassfish 3.0.1。 Servlet 版本 2.4 在我的 web.xml 文件中声明。 JSP 2.1。 JSTL 1.1。

补充:我已将 joda-time-jsptag-1.0.2.jar 添加到我的 WEB-INF/lib 目录中。我在同一个 lib 目录中也有 joda-time-1.6.1.jar 。

taglib uri 是否需要有效?当我尝试访问http://www.joda.org/joda/time/tags时在我的浏览器中,它重定向到 sourceforge 页面。也许我只需要更新的 URI 链接?

有人接盘吗?

最佳答案

taglib URI 不一定指向真实的 Web 资源。 taglib URI 应与 <uri> 匹配.tld 中的任何声明类路径中存在的文件。

鉴于这一事实,有两个可能的原因:

  1. TLD 文件(至少是包含它的 JAR 文件)根本不在类路径中。
  2. TLD 文件确实声明了不同的 URI。

我没有使用 JodaTime 标签的经验,所以我无法从头顶上判断这种(错误)行为是否正确。我能建议的最好办法是自己使用一些 ZIP 工具提取包含 TLD 文件的 JAR 文件,然后阅读实际 <uri>.tld文件在 META-INF JAR 的文件夹。

如果结果是相同的,那么您可能遇到了类路径或build设置的问题。 JAR 文件是否确实存在于正在运行的 web 应用程序环境中的(扩展的)WAR 文件中?

<小时/>

与具体问题无关,Servlet 2.4 意味着 JSP 2.0,而不是 JSP 2.1。此外,为什么要使用 Servlet 2.4 而不是 2.5 甚至 3.0? Glassfish 3 支持 Servlet 3.0。

关于jsp - JodaTime JSP 标签库工作时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5106481/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com