2012-04-03 91 views
15

我正在使用JSF 2.0。我有一個託管bean,可以通過我的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:房產 'someProperty' 在類型java.lang中的不可讀.String

當你想要訪問#{innerClass.someProperty}

+1

我在找了一個bug 2個小時後發現了這個。我想他們至少應該讓這個例外更清楚。這裏的字符串指的是預期的類型(在我的情況下它是布爾值),這真是令人困惑。 – NeplatnyUdaj 2013-09-18 16:21:54

相關問題