И моя путаница с JSF продолжается. Это продолжение вопроса, заданного вчера , но я чувствую, что он требует нового вопроса. У меня есть один компонент шва, который ожидает ввода параметра URL для получения List<String>
из метода. Это отлично работает при первой навигации по странице. List
используется для отображения множества различных selectOneRadio
групп, которые заполняют <h:form/>
.
Теперь при отправке я не могу получить параметр URL, который будет введен или иным образом установлен в компоненте! Добавление <h:inputHidden/>
вызывает исключение FacesException.
Затем я попытался установить List
в качестве переменной экземпляра для объекта, и когда последующий вызов выполняется для отправки (что я также не понимаю, почему это делается), я проверяю, является ли переменная -null: если это не так, верните его.
Теперь я обнаружил, что новый экземпляр компонента создается при отправке !!!
getList() called
this.toString(): .BeanAction@5fd98420
#### This is when submit is clicked
getList() called
this.toString(): .BeanAction@22aacbce
Компонент имеет следующие аннотации:
Stateful
@Scope(ScopeType.CONVERSATION)
@Name("bean")
@Restrict("#{identity.loggedIn}")
Может кто-нибудь объяснить, почему создается новый экземпляр компонента?
Я действительно не совсем уверен, как справиться с этим. Я думал, что скрытый параметр будет работать, потому что именно так я буду делать это с простым HTML, и я немного удивлен, что он не работает для JSF / Seam.