我无法弄清楚为什么我的formatDate无法正常工作。这是我的代码:
爪哇
@DateTimeFormat(style = "SS")
@Column(name="my_date")
private Date myDate;
public Date getMyDate() {
return this.myDate;
}
public void setMyDate(Date myDate) {
this.myDate = myDate;
}
JSP - 使用fmt:formatDate代码的代码的一部分:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<c:forEach var="foo" items="${fooList}" varStatus="i">
<tr>
<td>${i.index+1}</td>
<td>${foo.id}</td>
<td>${foo.name}</td>
<td><fmt:formatDate value="${foo.myDate}" pattern="MM/dd/yyyy"/></td>
</tr>
Web.xml中
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
</jsp-config>
以下是控制器的修改版本,此处显示了处理日期的所有部分。
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public String list(@PathVariable("id") String id, Model uiModel) {
List<foo> fooList = createList(fooList);
uiModel.addAttribute("fooList", fooList);
return VIEW_OBJECT;
}
运行我的应用程序时出现此错误:
java.lang.ClassCastException: org.springframework.web.servlet.support.JstlUtils$SpringLocalizationContext incompatible with java.lang.String
***只有当formateDate代码在那里时才显示错误,否则所有EL评估都很好。
有人知道为什么会这样吗?
答案 0 :(得分:0)
找到了解决我的fmt标签无效的原因。我需要改变我的依赖性:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.1.2</version>
</dependency>
要:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.1.2</version>
<scope>provided</scope>
</dependency>
感谢您的建议!
答案 1 :(得分:0)
我无法更改依赖项,因此我的解决方案是使用scriptlet。我没有解决fmt:formatDate,但它可以用作workarround:
<c:forEach var="foo" items="${fooList}" varStatus="i">
<tr>
<td>${i.index+1}</td>
<td>${foo.id}</td>
<td>${foo.name}</td>
<%--Scriptlet alternative: %>
<c:set var="fooMyDate" value="${foo.myDate}" scope="request"/>
<%
Object myDate = request.getAttribute("fooMyDate");
java.text.DateFormat df = new java.text.SimpleDateFormat("MM/dd/yyyy");
%>
<td><%= df.format(myDate)%></td>
</tr>