0
私はJSPで使用しようとしていますいくつかのJavaの豆持っている:私はELにアクセスしようとしているタイプのレビューのBeanがありへのアクセスJava Beanがプロパティは
class Review{
int id;
String text;
User author;
// ... getters/setters here ...
}
class User{
int id;
boolean isVisitor;
// ... getters/setters here ...
}
class VisitorUser extends User{
String name;
// ... getters/setters here ...
}
を:
あなたが見ることができるように${review.author.name}
、レビューでauthor
はタイプUser
であると私はELにアクセスしようとしていますnameプロパティは、そのサブクラスVisitorUser
に属します。作者がVisitorUser
のインスタンスである場合、このアプローチは正しいですか?
このアプローチは、前にも働いたが、突然どこからともなく(あるいはおそらくプロジェクトのいくつかの他の分野でいくつかの変更の副作用として)、サーバーは、このエラーを与えることを始めている:
javax.servlet.jsp.el.ELException: Unable to find a value for "name" in object of class "mypackage.domain.User_$$_javassist_27" using operator "."
このエラーを解決するためのヒント/アイデア/リンクは非常に高く評価されます。
Bozho。ちなみに、javassistが必要な私のプロジェクトでは、Hibernateを使用しています。 – craftsman
@クラフトマン - そうだね。次に、あなたは 'VisitorUser'を持っているのでしょうか?それはちょうど 'User'かもしれません(おそらくあなたはあなたの休止状態の継承を正しくマッピングしていません) – Bozho
マッピングは正しいです。同じレビューが別のJSPで正しく表示されているので、私はそれについて確信しています。問題を引き起こす特定のJSPには、アクティビティ(別の永続エンティティ)とレビューが表示されます。今ActivityはReviewとリンクされていない全く別のエンティティですが、データベースからアクティビティを取得すると、間違いなく上記のELエラーが表示されます。アクティビティを削除すると、再びレビューが正しく表示されるようになりました。 – craftsman