无法访问bean中的内部类

时间:2012-04-03 16:26:24

标签: jsf-2 el inner-classes managed-bean

我正在使用JSF 2.0。我有一个托管bean,我可以通过我的xhtml页面访问。在bean内部,我声明了一个内部类。我可以访问托管bean的ArrayList<String>但不访问ArrayList<InnerClass>,我得到了InnerClass没有可读属性的错误。谁知道什么是错的?

1 个答案:

答案 0 :(得分:33)

如果内部类不是public,则会发生这种情况。然后它对包外的其他类是不可见的(就像JSF / EL本身一样!)。无论何时需要通过JSF / EL访问内部类,都要确保内部类为public

public class Bean {

    public class InnerClass {
        // ...
    }

}

否则它将被解释为String,您将会遇到令人困惑的例外情况,例如

  

javax.el.E​​LException:/test.xhtml:属性'someProperty'在java.lang.String类型上不可读

如果您想访问#{innerClass.someProperty}