有条件地基于selectOneMenu值渲染组件

Ala*_*ith 2 jsf selectonemenu conditional-rendering

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

Bal*_*usC 6

只需检查rendered目标组件属性中的下拉菜单值,然后用a更新它们的公共父级<f:ajax>.这是一个启动示例:

<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>
Run Code Online (Sandbox Code Playgroud)

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

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

也可以看看:


归档时间:

查看次数:

9140 次

最近记录:

8 年,10 月 前