33

我正在尝试使用以下方式格式化日期:

<fmt:formatDate value="${newsletter.createdOn}" pattern="MM/dd/yyyy"/>

newsletter 是一个createdOn属性为 的对象java.util.Date

当我调用上一句时,我得到:

根据 TLD,属性值不接受表达式。

我正在导入 fmt

<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>

有谁知道我该如何解决这个问题?

我正在使用tomcat附带的jstl.jar。

在 jstl.jar/META-INF/MANIFEST.MF 下保持:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.5.3 
Created-By: 1.4.2-b28 (Sun Microsystems Inc.)
Specification-Title: JavaServer Pages Standard Tag Library (JSTL)
Specification-Version: 1.1
Implementation-Title: JavaServer Pages Standard Tag Library API Refere
 nce Implementation
Implementation-Version: 1.1.0-D13
Implementation-Vendor: Sun Microsystems, Inc.
Implementation-Vendor-Id: com.sun
Extension-Name: javax.servlet.jsp.jstl

我正在使用 Apache Tomcat 版本 6.0.14

4

9 回答 9

41

尝试

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
于 2008-11-11T16:37:13.733 回答
5

这家伙似乎通过从 jar 中提取 TLD,修改它,将它放在 WAR 的 WEB-INF 目录中,然后web.xml像这样添加一个条目来解决这个问题:

<jsp-config>
 <taglib>
  <taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
  <taglib-location>/WEB-INF/fmt.tld</taglib-location>
 </taglib>
</jsp-config>

最后,他切换到 1.1 声明:

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"/>
于 2008-11-11T17:27:02.697 回答
2

我遇到了同样的问题。

我将 <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/ fmt " %> 更改为 <%@ taglib prefix="fmt" uri="http://java.sun .com/jstl/ fmt_rt " %> 它对我有用!

于 2012-05-03T07:14:08.027 回答
1

显然,我需要 1.1,但我必须更改 c 和 fmt 的库导入语句。
现在它起作用了。感谢您的帮助,并为造成的混乱感到抱歉。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
于 2008-11-11T17:23:13.157 回答
1

你确定你没有使用标签库的运行时版本吗?我们可以看看库导入语句吗?

根据 JavaRanch 上的这个常见问题解答,我认为lucus正在做一些事情,这是一个 JSTL 1.0 声明。您可能想要更新到 1.1。

您的环境、应用服务器和版本是什么?

于 2008-11-11T16:33:22.040 回答
1

您使用的是 JSTL 1.0 还是 1.1?1.1 中的 formatDate 应该接受表达式。

于 2008-11-11T16:39:24.527 回答
1

它只是通过将“_rt”添加到 taglib url 来为我工作,如下所示:

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt_rt" %>

我在这篇文章中找到了

玩得开心!

于 2011-02-23T08:44:29.963 回答
0

您使用的是fmt-1_0-rt.tld还是fmt-1_0.tldtaglib。

不同之处在于设置rtexprvalue

一方面,这是错误的,另一方面,这是真的。

于 2008-11-11T16:38:28.803 回答
0
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix='fmt'%>

正在为我工​​作。

于 2014-07-03T11:37:02.497 回答