使用fmt格式化日期:formatDate JSP

Ser*_*Amo 33 jsp jstl

我正在尝试格式化日期:

<fmt:formatDate value="${newsletter.createdOn}" pattern="MM/dd/yyyy"/>
Run Code Online (Sandbox Code Playgroud)

时事通讯是一个createdOn有财产的对象java.util.Date.

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

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

我正在导入fmt

<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
Run Code Online (Sandbox Code Playgroud)

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

我正在使用与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
Run Code Online (Sandbox Code Playgroud)

我正在使用Apache Tomcat版本6.0.14

luc*_*cas 42

尝试

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
Run Code Online (Sandbox Code Playgroud)


sbl*_*ndy 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>
Run Code Online (Sandbox Code Playgroud)

最后,他转向1.1声明:

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"/>
Run Code Online (Sandbox Code Playgroud)

  • 实际上,只修复taglib URI就足够了.对松散TLD的困扰是一个很大的神话,真的不应该这样做. (2认同)

sbl*_*ndy 1

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

我认为lucus是有道理的,根据JavaRanch 上的常见问题解答,这是 JSTL 1.0 声明。您可能想要更新到 1.1。

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