Я только что реализовал грубую функциональность, используя jsf + richfaces, и натолкнулся на эту ситуацию, поэтому выкладывал это на открытый форум для получения ответов.
У меня есть текстовое поле и rich: dataTable внутри формы.Когда значение изменяется в textField, данные таблицы заполняются, и предполагается, что таблица будет перерисована с последними данными.
Теперь вопрос: что, если я предоставил условие для dataTable, изобразив эту таблицу, если список значенийне-нуль / не пуст?Таким образом, в первый раз, когда появляется экран, список имеет значение null / empty и, следовательно, таблица не отображается, как и когда я изменяю textField, значения заполняются, и вызывается reRender для таблицы, но в целом таблица не существует.
Есть ли способ решить это поведение?Если я перезагружу страницу, то да, безусловно, появится таблица:)
Вот пример кода для этого:
<h:form id="userSearchForm" prependId="false">
<h:inputText value="#{ldapSearch.searchString}">
<a4j:support event="onkeyup" ignoreDupResponses="true" ajaxSingle="true" reRender="usersTable"
requestDelay="50" actionListener="#{ldapSearch.searchUser}"/>
</h:inputText>
<rich:dataTable id="usersTable"
rendered="#{not empty ldapSearch.users}"
value="#{ldapSearch.users}" var="user">
<rich:column sortable="false" label="Name">
<f:facet name="header">
<h:outputText value="Name"/>
</f:facet>
<h:outputText title="#{user.displayName}" value="#{user.displayName}"/>
</rich:column>
</rich:dataTable>
</h:form>