2012-04-03 10 views
15

私はJSF 2.0を使用しています。私は自分のxhtmlページからアクセスできるマネージドBeanを持っています。豆の中で私は内部クラスを宣言しました。管理対象BeanのArrayList<String>にアクセスできますが、ArrayList<InnerClass>ではなく、InnerClassに読み取り可能なプロパティがないというエラーが表示されます。誰が何が間違っているのか分かりますか?Beanの内部クラスにアクセスできない

答えて

30

内部クラスがpublicでない場合に起こります。それはパッケージ外の他のクラス(JSF/EL自体のように!)からは見えません。 JSF/ELでアクセスする必要があるときはいつでも、内部クラスがpublicであることを確認してください。

public class Bean { 

    public class InnerClass { 
     // ... 
    } 

} 

は、それ以外の場合は、Stringとして解釈され、あなたは

javax.el.E​​LExceptionのように混乱した例外を取得します:/test.xhtml:型のjava.langの読めないプロパティ 'someProperty' を.String

#{innerClass.someProperty}にアクセスする場合。

+1

2時間後にこれを見つけました。少なくとも、例外をより明確にすべきだと思います。ここの文字列は予想される型(私の場合はブール値)を参照しています。これは本当に混乱しています。 – NeplatnyUdaj

関連する問題