JSF получает значения от UIComponent
Я пытаюсь описать мою проблему:
Вот page.xhtml
:
...
<rich:dataTable value="#{bean.myExampleList}" vat="element">
<rich:column>
<a4j:commandLink status="waitStatus" oncomplete="#{rich:component('editModalPanel')}.show();"
render="editModalPanel">
<h:graphicImage library="images" name="icons/edit.gif" style="border:0" />
<f:setPropertyActionListener value="#{element.id}"
target="#{AdminBean.currentSelected}"/>
</a4j:commandLink>
</rich:column>
</rich:dataTable>
...
Вот modal.xhtml
:
...
<h:inputText id="name" value="#{bean.name}"/>
<h:outputText value="#{bean.name}"/>
...
Например, когда я нажимаю на первую строку в page.xhtml
, моя модальная панель откроется, когда я отправлю свою форму, и нет проблем с проверкой, все в порядке. Но когда возникают проблемы с проверкой, и я закрываю modalPanel, затем щелкните по второй строке в page.xhtml
, тексты в h:inputText
а также h:outputText
разные. Текст в h:outputText
равно #{bean.name}
текст в h:inputText
соответствует имени из первого ряда в таблице. В этой ситуации я думаю, что h:inputText
получает текст от UIComponent
из дерева, а не из bean
, В чем проблема?
1 ответ
Это должно работать так, когда проверка не проходит. Чтобы получить правильное значение, вы должны принудительно выполнить сброс.
Используйте либо <f:resetValues render="id_to_reset">
или же <f:ajax resetValues="true" render="id_to_reset">
, В следующей версии RichFaces (4.5.1) атрибут resetValues будет добавлен к компонентам ajax.