Мне нужно показать страницу ответа в зависимости от некоторых полей ввода. Например. табид inputHidden ниже:
#{controllerBean.tabId}
...
<h:form id="edit">
<h:inputHidden value="#{controllerBean.tabId}" id="tabid" />
<h:inputText value="#{controllerBean.name}" id="name" />
</h:form>
Но когда какой-либо другой ввод в той же форме имеет ошибку проверки (например, «имя» inputText). Значение «controllerBean.tabId» не будет присвоено, так как JSF возвращает значение на этапе проверки.
Мне все еще нужен tabId, чтобы правильно отображать страницу и иметь в виду 2 идеи:
#{param['edit:tabid']}
или используйте привязку:
#{tabId.value}
<h:inputHidden value="#{controllerBean.tabId}" id="tabid" binding="tabId" />
Мой вопрос в том, что из этих двух лучше или лучше всего? Или есть еще лучшие способы сделать это?
Обновить:
Примечание. В моем конкретном случае табид устанавливается клиентским javascript.
- Ответ сервера с несколькими элементами в html.
- Javascript помещает эти элементы в разные вкладки на странице.
- Одна из вкладок POST данных на сервер с текущим табидом в форме.
Поэтому моему серверу нужно знать tabid, чтобы показать страницу ответа с выбранной правильной вкладкой.
@ViewScoped
? Это позволит вам сохранить текущий идентификатор вкладки в компоненте. - person Xtreme Biker   schedule 31.10.2013tabId
для других целей в bean-компоненте? Или у вас есть только свойство + геттер + сеттер, которого нигде больше нет в bean-компоненте, используемом, например, во время действия? - person BalusC   schedule 01.11.2013