gpt4 book ai didi

jsf - 根据 selectOneMenu 值有条件地渲染组件

转载 作者:行者123 更新时间:2023-12-03 00:11:29 25 4
gpt4 key购买 nike

有没有办法根据用户从 selectOneMenu 组件中选择的当前值来渲染组件?我的 selectOneMenu 组件填充了一个由两个值组成的枚举:吸烟者和非吸烟者。如果用户选择了吸烟者,我想在其下方呈现一个复选框,让用户检查他们每天吸烟的数量(10、20、30+等)。如果用户选择了非吸烟者,我也希望相反的工作,即复选框不会呈现/消失。

最佳答案

只需检查 rendered 中下拉菜单的值即可目标组件的属性并通过 <f:ajax> 更新其公共(public)父组件。这是一个启动示例:

<h:selectOneMenu value="#{bean.item}">
<f:selectItem itemValue="one" />
<f:selectItem itemValue="two" />
<f:selectItem itemValue="three" />
<f:ajax render="results" />
</h:selectOneMenu>

<h:panelGroup id="results">
<h:panelGroup rendered="#{bean.item eq 'one'}">
You have selected "one".
</h:panelGroup>
<h:panelGroup rendered="#{bean.item eq 'two'}">
You have selected "two".
</h:panelGroup>
<h:panelGroup rendered="#{bean.item eq 'three'}">
You have selected "three".
</h:panelGroup>
</h:panelGroup>

如果您想根据所选值执行一些业务逻辑,请使用 <f:ajax listener> .

<f:ajax listener="#{bean.changeItem}" render="results" />
public void changeItem() {
someResult = someService.getByItem(item);
}

另请参阅:

关于jsf - 根据 selectOneMenu 值有条件地渲染组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13454295/

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