JSF 2 AJAX - 重新加载整个div(例如<ui:include src =“toReloadData.xhtml”>)</ui:include>

时间:2010-12-29 16:17:57

标签: jsf jsf-2

我正在使用jsf2并希望使用它的ajax功能。问题:我已经看到了一些ajax刷新的东西。但没有什么可以刷新一个整体...

我有一个包含我的bean数据的xhtml页面,我真的不想刷新它的所有字段,刷新整个ui会更容易:include ...

有人知道解决方案吗?或者我是否必须手动刷新所有字段?

最好的问候

2 个答案:

答案 0 :(得分:10)

只需将它们放入带ID的容器组件中,然后在render的{​​{1}}属性中使用它。

f:ajax

请注意,<h:form> <h:commandButton value="submit" action="#{bean.submit}"> <f:ajax render=":foo" /> </h:commandButton> </h:form> <h:panelGroup id="foo" layout="block"> <ui:include src="include.xhtml" /> </h:panelGroup> 会呈现<h:panelGroup layout="block">。如果省略<div>属性,则默认为layout(仅当有任何属性需要呈现为HTML时,如<span>)。

答案 1 :(得分:1)

好吧BalusC,但我仍然遇到包含和ajax的问题​​。 我的index.xhtml包括search.xhtml和results.xhtml ajax-part在search.xhtml中,toRender-id在results.xhtml中... 所以在渲染jsf-tags时,问题是此时没有toRender-Id ......

修改 好的问题不在于包含的安排,而是ajax-parts必须是这样的形式标签:

<h:form>
  <div id="search" class="search">
    <ui:insert name="search" >
    <ui:include src="search.xhtml" />
    </ui:insert>
  </div>

  <h:panelGroup id="ajaxResult" layout="block"> 
      <ui:insert name="searchResults" >
      <ui:include src="searchResults.xhtml" />
      </ui:insert>
  </h:panelGroup>
</h:form>

搜索包含f:ajax标记,ajaxResult是toRenderId 最好的问候,emre