Не удается получить доступ к внутреннему классу в bean

Я использую JSF 2.0. У меня есть управляемый bean, который я могу получить через мою страницу xhtml. Внутри bean я объявил внутренний класс. Я могу получить доступ к ArrayList<String> управляемого bean, но не ArrayList<InnerClass>, и я получаю сообщение об ошибке, которое InnerClass не имеет читаемого свойства. Кто-нибудь знает, что случилось?

Ответы

Ответ 1

Это может произойти, если внутренний класс не является public. Затем он будет невидим для других классов вне пакета (например, как сам JSF/EL!). Убедитесь, что внутренний класс public, когда вам нужен доступ к нему с помощью JSF/EL.

public class Bean {

    public class InnerClass {
        // ...
    }

}

В противном случае он будет интерпретироваться как String, и вы получите путаные исключения, например

javax.el.ELException:/test.xhtml: свойство 'someProperty' не читается по типу java.lang.String

когда вы хотите получить доступ к #{innerClass.someProperty}.