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