5

私のプロジェクトは、hibernate 3.4.0 GA を使用してデータベースにアクセスし、Spring MVC 2.5.6 を使用して Web リクエストを処理し、jsp(jstl) を使用してビュー (Web ページ) をレンダリングしています。

Hibernate によってデータベースからエンティティ リストを取得し、それをモデルとして jsp のモデルマップに追加します。jsp が Web ページをレンダリングすると、「javax.el.PropertyNotFoundException」がスローされます。

javax.el.PropertyNotFoundException: プロパティ 'timestamp' が java.lang.String 型で見つかりません

例外は次のとおりです。

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

「statusHistory」は文字列と見なされますが、オブジェクトとは見なされないようです。

「StatusHistory」クラスには、「timestamp」プロパティと getter メソッドがあります。

public Class StatusHistory{
    ...
    private Date timestamp;
    public Date getTimestamp(){...}
    ...
}

私は一日中グーグルで検索しました。一部の投稿では、ゲッター メソッドが規約に従っていないと書かれています。しかし、それは私の場合ではないようです。
誰かが私を助けてくれますか?

前もってありがとう アンドリュー

4

3 に答える 3

9

ここ、

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

実際にメソッドを持たない値を持つプレーンなバニラ文字列のitems属性を提供しています。<c:forEach>"statusHistoryList"getTimestamp()

${...}代わりにEL 式を使用して参照する必要があります。

<c:forEach var="statusHistory" items="${statusHistoryList}">
    ${statusHistory.timestamp}
</c:forEach>
于 2011-05-27T01:26:31.173 に答える