我的项目使用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.String上找不到属性“ timestamp”
异常来自:
<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">
您要提供带有纯原始String 的items属性,<c:forEach>而其值"statusHistoryList"实际上确实没有getTimestamp()方法。
items
<c:forEach>
"statusHistoryList"
getTimestamp()
您需要使用EL表达式来引用它${...}。
${...}
<c:forEach var="statusHistory" items="${statusHistoryList}"> ${statusHistory.timestamp} </c:forEach>