首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据selectOneMenu值有条件地呈现组件

根据selectOneMenu值有条件地呈现组件
EN

Stack Overflow用户
提问于 2012-11-19 20:55:03
回答 1查看 10.1K关注 0票数 2

有没有一种方法可以根据用户从selectOneMenu组件中选择的当前值来呈现组件?我的selectOneMenu组件填充了一个枚举,该枚举包含两个值: smoker和non-smoker。如果用户选择了吸烟者,我想在它下面渲染一个复选框,让用户检查他们每天吸烟10,20,30+等。我也希望相反的工作,如果他们的用户选择了非吸烟者,即复选框不渲染/消失。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-19 21:28:45

只需检查目标组件的rendered属性中的下拉菜单的值,并通过<f:ajax>更新它们的公共父级。下面是一个启动示例:

代码语言:javascript
复制
<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>

代码语言:javascript
复制
<f:ajax listener="#{bean.changeItem}" render="results" />
代码语言:javascript
复制
public void changeItem() {
    someResult = someService.getByItem(item);
}

另请参阅:

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13454295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档