如何在JSP中格式化和显示Date
对象,最好使用JSTL和EL,但是欢迎使用任何其他解决方案?我无法更改该bean对象。格式化日期并使用JSTL和EL显示它
我有下面的类:
import java.util.Date;
public class Person {
private Date myDate;
public Date getMyDate() {
return myDate;
}
public void setMyDate(Date myDate){
this.myDate = myDate;
}
}
我想显示在JSP页面中此对象的日期。当我这样做<c:out value="${person.myDate} />
它打印在页面中。 2013-06-08 00:00:00.0
我想要做的是删除日期的时间部分并将其格式化为MM-dd-yyyy
。
我尝试这样做:
<c:set var="myDate" value="${person.myDate }"/>
<fmt:formatDate value="${myDate}" type="date" var="formattedDate"/>
,它给了我下面的错误
无法转换字符串 '$ {}指明MyDate' 类java.util.Date的属性值:JAVA .lang.IllegalArgumentException:属性编辑器未注册PropertyEditorManager
然后我尝试了以下操作:
<c:set var="myDate" value="${person.myDate }"/>
<fmt:parseDate value="${myDate }" var="parsedDate" pattern="MM-dd-yyyy"/>
<c:out value="${parsedDate }"/>
和我:
无法解析的日期: “$ {}指明MyDate”
给我“无法将字符串'$ {myDate}'转换为类java .util.Date“ – Susie
至于错误的JSTL声明,如果我不尝试格式化它,我的页面会显示日期。这足以确认jstl声明与我的servlet/jsp版本匹配吗? – Susie
不,标签在JSP版本之间更改。他们曾经得到一个字符串(EL)并为自己评估。然后,在更高版本的JSP版本中,servlet容器执行评估,然后将对象发送到接收该类型对象的标签,而不是要评估的字符串。如果你混合使用标签,你会得到奇怪的错误。如果一个标签有效,这并不意味着其余的都可以。 – Bogdan