我正在使用JSF 2.0。我有一个托管bean,我可以通过我的xhtml页面访问。在bean内部,我声明了一个内部类。我可以访问托管bean的ArrayList<String>
但不访问ArrayList<InnerClass>
,我得到了InnerClass没有可读属性的错误。谁知道什么是错的?
答案 0 :(得分:33)
如果内部类不是public
,则会发生这种情况。然后它对包外的其他类是不可见的(就像JSF / EL本身一样!)。无论何时需要通过JSF / EL访问内部类,都要确保内部类为public
。
public class Bean {
public class InnerClass {
// ...
}
}
否则它将被解释为String
,您将会遇到令人困惑的例外情况,例如
javax.el.ELException:/test.xhtml:属性'someProperty'在java.lang.String类型上不可读
如果您想访问#{innerClass.someProperty}
。