我的项目使用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>