我的项目使用hibernate 3.4.0 GA访问数据库,并使用Spring MVC 2.5.6处理Web请求,并使用jsp(jSTL)渲染 View (网页)。

我从休眠状态的数据库中获取了一个实体列表,并将其作为模型添加到jsp的modelmap中。当jsp渲染网页时,它会抛出“javax.el.PropertyNotFoundException”。



并且异常来自:

<c:forEach var="statusHistory" items="statusHistoryList">
    ${statusHistory.timestamp}
</c:forEach>

似乎“statusHistory”被认为是一个字符串,而不是一个对象。

“StatusHistory”类具有“timestamp”属性和getter方法:
public Class StatusHistory{
    ...
    private Date timestamp;
    public Date getTimestamp(){...}
    ...
}

我已经在Google上搜索了一整天。某些帖子说,getter方法未遵循约定。但这似乎不是我的情况。
有人可以帮帮我吗?

提前致谢
安德鲁

最佳答案

这里,

<c:forEach var="statusHistory" items="statusHistoryList">

您正在为items<c:forEach>属性提供一个普通的 Vanilla 字符串,该字符串具有"statusHistoryList"的值,而该字符串实际上并没有getTimestamp()方法。

您需要使用EL表达式${...}来引用它。
<c:forEach var="statusHistory" items="${statusHistoryList}">
    ${statusHistory.timestamp}
</c:forEach>

10-05 18:27