私はJSF 2.0を使用しています。私は自分のxhtmlページからアクセスできるマネージドBeanを持っています。豆の中で私は内部クラスを宣言しました。管理対象BeanのArrayList<String>
にアクセスできますが、ArrayList<InnerClass>
ではなく、InnerClassに読み取り可能なプロパティがないというエラーが表示されます。誰が何が間違っているのか分かりますか?Beanの内部クラスにアクセスできない
15
A
答えて
30
内部クラスがpublic
でない場合に起こります。それはパッケージ外の他のクラス(JSF/EL自体のように!)からは見えません。 JSF/ELでアクセスする必要があるときはいつでも、内部クラスがpublic
であることを確認してください。
public class Bean {
public class InnerClass {
// ...
}
}
は、それ以外の場合は、String
として解釈され、あなたは
javax.el.ELExceptionのように混乱した例外を取得します:/test.xhtml:型のjava.langの読めないプロパティ 'someProperty' を.String
#{innerClass.someProperty}
にアクセスする場合。
2時間後にこれを見つけました。少なくとも、例外をより明確にすべきだと思います。ここの文字列は予想される型(私の場合はブール値)を参照しています。これは本当に混乱しています。 – NeplatnyUdaj