當我想要Ajax更新一個組件時,為什么我需要在另一個組件中嵌套一個呈現(xiàn)=“#{一些}”的組件?所以我找到了一些接近這個問題的答案,我找到了足夠多的答案來解決我的問題。但即使如此,我還是很好奇能不能理解這件事的運作方式。讓我舉例說明:我有手帕.xhtml看起來像這樣的頁面(短頁)。<h:form id="resultForm">
<h:panelGroup class="search_form" layout="block">
<h:inputText id="lastname" value="#{search.lastname}"/>
<h:commandButton action="#{search.find}" value="Find">
<f:ajax execute="lastname" render="resultDisplay"/>
</h:commandButton>
</h:panelGroup>
<h:dataTable value="#{search.searchResults}" var="results" id="resultDisplay"
rendered="#{!empty search.searchResults}">
<h:column>
#{results.field} </h:column>
</h:dataTable></h:form>現(xiàn)在,為了簡潔起見,我不會發(fā)布所有支持bean代碼,但是我有這樣的內容:public void find() {
searchResults = setResults(true);}哪里searchResults是ArrayList<Objects>..搜索之后,它不會在多個測試中被選中(可以是NULL,但在我正在做的測試中不是空的)?,F(xiàn)在。這不管用。但如果我筑巢dataTable在另一個里面,比如說panelGroup它會起作用的。<h:panelGroup id="resultDisplay">
<h:dataTable value="#{search.searchResults}" var="results"
rendered="#{!empty search.searchResults}">
<h:column>
#{results.field} </h:column>
</h:dataTable></h:panelGroup>現(xiàn)在,這種變化允許一切正常工作。我不會介意的.。但我想我也在尋求一些理解。對我為什么要嵌套這些組件有任何見解嗎?我肯定漏掉了什么!
當我想要Ajax更新一個組件時,為什么我需要在另一個組件中嵌套一個呈現(xiàn)=“#{一些}”的組件?
斯蒂芬大帝
2019-06-16 14:56:29