15
我正在使用JSF 2.0。我有一个托管bean,可以通过我的xhtml页面访问。在bean内部,我声明了一个内部类。我可以访问托管bean的ArrayList<String>
,但不能访问ArrayList<InnerClass>
,并且我得到InnerClass没有可读属性的错误。任何人都知道什么是错的?无法访问bean中的内部类
我正在使用JSF 2.0。我有一个托管bean,可以通过我的xhtml页面访问。在bean内部,我声明了一个内部类。我可以访问托管bean的ArrayList<String>
,但不能访问ArrayList<InnerClass>
,并且我得到InnerClass没有可读属性的错误。任何人都知道什么是错的?无法访问bean中的内部类
如果内部类不是public
,则可能发生这种情况。然后它将在包之外的其他类中不可见(如JSF/EL本身!)。每当需要通过JSF/EL访问内部类时,请确保内部类为public
。
public class Bean {
public class InnerClass {
// ...
}
}
否则会被解释为String
,你会得到令人困惑的异常像
javax.el.ELException:/test.xhtml:房产 'someProperty' 在类型java.lang中的不可读.String
当你想要访问#{innerClass.someProperty}
。
我在找了一个bug 2个小时后发现了这个。我想他们至少应该让这个例外更清楚。这里的字符串指的是预期的类型(在我的情况下它是布尔值),这真是令人困惑。 – NeplatnyUdaj 2013-09-18 16:21:54