gpt4 book ai didi

ajax - JSF 2 - Ajax - 表单未完全呈现

转载 作者:行者123 更新时间:2023-12-04 06:34:20 27 4
gpt4 key购买 nike

我使用新选择的语言环境呈现表单的 Ajax 代码是:

<h:selectOneMenu id="selectLang" immediate="true" value="#{langListing.language}">
<f:ajax listener="#{langListing.changeLocale}" render="@form" />
<f:selectItems value="#{langListing.languages}" />
</h:selectOneMenu>

但是,由于上面的代码在一个名为 header.xhtml 的头文件中,所以当我在英语和法语之间切换语言环境时,上面的代码只会呈现 header.xhtml 的内容。我的 index.xhtml 结构如下:
header.xhtml
menu.xhtml
body content with an id of "contentSection"
footer.xhtml

如何在渲染 header.xhtml 的同时渲染 menu.xhtml、body 部分和 footer.xhtml?

最佳答案

@form影响父内容 <h:form>只要。使用 @all反而。

<f:ajax listener="#{langListing.changeLocale}" render="@all" />

另请参阅 render 的说明 <f:ajax> tag documentation 中的属性.

但是,由于更改语言环境无论如何都会影响整个页面,因此您也可以考虑触发同步请求而不是 ajaxical 请求。为此,请删除 <f:ajax>标签,添加 onchange="submit()"到下拉菜单并将代码移到 changeLocale() 内进入 setLanguage()方法。另见 this answer举个具体的例子。

关于ajax - JSF 2 - Ajax - 表单未完全呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5032455/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com