我有一个JSF搜索命令按钮和一个显示搜索结果的tomahawk dataTable。单击命令按钮时,dataTable应输出搜索结果。无论如何,因为我使用JSF Ajax,所以dataTable没有显示。我只是想知道JSF Ajax是否会导致问题?
以下是导致表现在呈现的有问题的代码:
<h:commandButton id="search" value="#{msg.Label_Search}" action="#{theBean.doSearch}">
<f:ajax render="searchStatus" execute="@form" />
</h:commandButton>
<h:outputText id="searchStatus" value="Loading data now..." rendered="#{theBean.searchingNow}" />
<h:panelGroup id="searchResultTable">
<t:dataTable ... />
</h:panelGroup>
*注意这一点。如果删除了ajax代码。它工作正常。
答案 0 :(得分:1)
您只是在ajax请求完成时更新searchStatus
,而不是searchResultTable
。因此,最终用户确实永远不会在searchResultTable
的HTML表示中看到视觉上的变化。
相应地修正<f:ajax render>
,以便searchResultTable
也真正更新:
<f:ajax render="searchStatus searchResultTable" execute="@form" />