gpt4 book ai didi

ajax - JSF - 使用 AJAX 和 selectOneListbox 创建动态菜单

转载 作者:行者123 更新时间:2023-12-02 00:36:44 25 4
gpt4 key购买 nike

我想做的很容易解释:

bean

@ManagedBean
@ViewScoped
public class Articles {
private String selectedMenu;

@PostConstruct
public void init() {
if(selectedMenu==null || selectedMenu.trim().isEmpty()) {
this.selectedMenu="0";
}
}

public String getSelectedMenu() { return selectedMenu; }
public void setSelectedMenu(String selectedMenu) { this.selectedMenu = selectedMenu; }
}

页面

<h:selectOneListbox onchange="..?? ajax call that render on loadMenu and pass the value of the focused listbox to Articles Bean" id="category" size="0" >
<f:selectItem itemLabel="first" itemValue="0" />
<f:selectItem itemLabel="second" itemValue="1" />
<f:selectItem itemLabel="third" itemValue="2" />
</h:selectOneListbox>

<h:panelGroup layout="block" id="loadMenu">
<h:panelGroup rendered="#{articles.selectedMenu=='0'}">
MENU 0
</h:panelGroup>

<h:panelGroup rendered="#{articles.selectedMenu=='1'}">
MENU 1
</h:panelGroup>

<h:panelGroup rendered="#{articles.selectedMenu=='2'}">
MENU 2
</h:panelGroup>
</h:panelGroup>

当我更改列表框的值时,菜单应该发生动态变化(通过调用服务器上的某些函数)。我认为上面的代码表达了我正在寻找的东西。

我必须知道如何使用 onchange 选项调用它。可能吗?

干杯

更新

<h:panelGroup layout="block">
<h:selectOneListbox styleClass="article_combo" size="0" id="selectedMenu" >
<f:selectItem itemLabel="first" itemValue="0" />
<f:selectItem itemLabel="second" itemValue="1" />
<f:selectItem itemLabel="third" itemValue="2" />

<f:ajax event="change" execute="@this" render="loadMenu" />
</h:selectOneListbox>
</h:panelGroup>

<h:panelGroup layout="block" id="loadMenu">
<h:panelGroup rendered="#{articles.selectedMenu=='0'}">
MENU 0
</h:panelGroup>

<h:panelGroup rendered="#{articles.selectedMenu=='1'}">
MENU 1
</h:panelGroup>

<h:panelGroup rendered="#{articles.selectedMenu=='2'}">
MENU 2
</h:panelGroup>
</h:panelGroup>

最佳答案

您可以使用 JSF 2 中内置的 ajax 支持来实现这一点。为此,在您的 h:selectOneListbox 标记中嵌套一个 f:ajax 标记。 f:ajax 标记应如下所示:

<f:ajax render="loadMenu" execute="@this" />

这应该处理列表框中更改的值,并重新呈现 panelGroup。

详情请见: http://mkblog.exadel.com/2010/04/learning-jsf-2-ajax-in-jsf-using-fajax-tag/

关于ajax - JSF - 使用 AJAX 和 selectOneListbox 创建动态菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4306300/

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