Я использую JSF 2.0. У меня есть управляемый компонент, доступ к которому я могу получить через мою страницу xhtml. Внутри боба я объявил внутренний класс. Я могу получить доступ к ArrayList<String>
управляемых компонентов, но не ArrayList<InnerClass>
, и я получаю сообщение об ошибке, которое InnerClass не имеет читаемого свойства. Кто-нибудь знает, что случилось?Не удается получить доступ к внутреннему классу в bean-компоненте
15
A
ответ
30
Это может произойти, если внутренний класс не является public
. Затем он будет невидим для других классов вне пакета (например, как сам JSF/EL!). Убедитесь, что внутренний класс равен public
всякий раз, когда вам нужно получить к нему доступ JSF/EL.
public class Bean {
public class InnerClass {
// ...
}
}
В противном случае это будет интерпретировано как String
и вы получите запутанным исключения, как
javax.el.ELException: /test.xhtml: свойство 'SomeProperty' не читаемый по типу java.lang .String
, если вы хотите получить доступ #{innerClass.someProperty}
.
Я нашел это после 2 часов поиска ошибки. Я думаю, они должны хотя бы сделать исключение более ясным. Строка здесь относится к ожидаемому типу (в моем случае это было логическое), что действительно запутывает. – NeplatnyUdaj