c:forEach抛出javax.el.PropertyNotFoundException:在java.lang.Stringtypes中找不到属性'foo'
我的项目是使用hibernate 3.4.0 GA来访问数据库,Spring MVC 2.5.6来处理web请求和jsp(jstl)来渲染视图(网页)。
我通过hibernate从数据库中获取一个实体列表,并将其作为模型添加到jsp的modelmap中。当jsp渲染我的网页时,它抛出一个“javax.el.PropertyNotFoundException”。
javax.el.PropertyNotFoundException:在java.lang.Stringtypes中找不到属性'timestamp'
而例外来自:
<c:forEach var="statusHistory" items="statusHistoryList"> ${statusHistory.timestamp} </c:forEach>
这似乎是“statusHistory”被视为一个string,而不是一个对象。
“StatusHistory”类有“timestamp”属性和getter方法:
public Class StatusHistory{ ... private Date timestamp; public Date getTimestamp(){...} ... }
我在谷歌上search了一整天。 有些文章说getter方法不符合约定。 但似乎不是我的情况。
有人可以帮帮我吗?
在此先感谢安德鲁
这里,
<c:forEach var="statusHistory" items="statusHistoryList">
你用一个普通的vanillastring提供了<c:forEach>
的items
属性,其值为"statusHistoryList"
,而这个string确实没有getTimestamp()
方法。
您需要使用ELexpression式${...}
来引用它。
<c:forEach var="statusHistory" items="${statusHistoryList}"> ${statusHistory.timestamp} </c:forEach>