Tag: ajax update

为什么我需要在另一个组件中使用rendered =“#{some}”嵌套一个组件,当我想要更新它时?

所以我发现了几个答案,我已经find了足够的解决我所遇到的问题。 但是,即使如此,我也很好奇为了解这个问题。 让我以一个例子来说明: 我有一个facelet .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> 现在,为了简洁起见,我不会发布所有的支持bean代码,但是我有这样的一些东西: public void find() { searchResults = setResults(true); } 其中searchResults是一个ArrayList<Objects> 。 search后,它不是空 – 在多个testing中检查(可以为空,但不是在我正在做的testing)。 现在。 这是行不通的。 但是,如果我把dataTableembedded另一个,让我们说panelGroup ,它将工作。 <h:panelGroup id="resultDisplay"> <h:dataTable value="#{search.searchResults}" var="results" […]

如何通过导航菜单ajax刷新dynamic包含内容? (JSF SPA)

我只是在学习JSF 2,因为我在这么短的时间内学到了很多东西。 我的问题是关于如何实现所有我的JSF 2页面的通用布局,只有页面的内容部分刷新,而不是整个页面,只要点击不同面板的链接/菜单。 我正在使用Facelets方法,除了每次单击面板中的链接(例如,左侧面板中的菜单项)之外,整个页面都会刷新,所以我只需要它。 我正在寻找的是一种只刷新我的网页内容部分的方法。 为了说明下面是我的目标页面布局。 没有发布我的代码,因为我不知道如果Facelets可以做到这一点。 除了Facelets之外,还有其他方法更适合我的需求吗?