我正在尝试使用以下内容格式化日期:
<fmt:formatDate value="${newsletter.createdOn}" pattern="MM/dd/yyyy"/>
简报是一个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
答案 0 :(得分:42)
尝试
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
答案 1 :(得分:5)
This guy似乎解决了这个问题,方法是从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"/>
答案 2 :(得分:2)
我遇到了同样的问题。
我改变了 &lt;%@ taglib prefix =“fmt”uri =“http://java.sun.com/jstl/ fmt ”%&gt; 至 &lt;%@ taglib prefix =“fmt”uri =“http://java.sun.com/jstl/ fmt_rt ”%&gt; 它对我有用!
答案 3 :(得分:1)
您确定没有使用标签库的运行时版本吗?我们可以看一下库导入语句吗?
根据JavaRanch上的这个lucus,我认为FAQ是一个东西,这是一个JSTL 1.0声明。您可能希望更新到1.1。
您的环境,应用服务器和版本是什么?
答案 4 :(得分:1)
您使用的是JSTL 1.0还是1.1? 1.1中的formatDate应该接受表达式。
答案 5 :(得分: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" %>
答案 6 :(得分:1)
通过向taglib url添加“_rt”,这对我来说很有用:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt_rt" %>
中找到了它
玩得开心!
答案 7 :(得分:0)
您使用的是fmt-1_0-rt.tld
还是fmt-1_0.tld
taglib。
区别在于rtexprvalue
一方面,这是错误的,另一方面则是如此。
答案 8 :(得分:0)
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix='fmt'%>
正在为我工作。