我正在使用jsf2并希望使用它的ajax功能。问题:我已经看到了一些ajax刷新的东西。但没有什么可以刷新一个整体...
我有一个包含我的bean数据的xhtml页面,我真的不想刷新它的所有字段,刷新整个ui会更容易:include ...
有人知道解决方案吗?或者我是否必须手动刷新所有字段?
最好的问候
答案 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