当radiobutton改变时,有条件地渲染其他组件

时间:2015-02-14 18:58:58

标签: jsf radio-button jsf-1.2 conditional-rendering

如果选择了radiobutton,我正在尝试显示菜单。我正在使用呈现属性来实现此目的。

型号:

private int type; // +getter+setter

查看:

<h:selectOneRadio value="#{bean.type}">
    <f:selectItem itemLabel="A" itemValue="1"/>
    <f:selectItem itemLabel="B" itemValue="2"/>
</h:selectOneRadio>
<h:form id="formMention" rendered="#{bean.type == 1}">
    <h:selectOneMenu ...>
        <f:selectItems ... />
    </h:selectOneMenu>
</h:form>

当我检查A时,什么都没有显示。我怎样才能实现这个目标?

1 个答案:

答案 0 :(得分:1)

通常情况下,你会为​​此获取ajax,但是因为你显然是在缺乏ajax幻想的死JSF 1.x上,只要你不想要,你就会使用“普通”的HTML / JS介绍一个支持ajax的组件库。其中一种方法是直接单击单选按钮提交表单。

<h:form>
    <h:selectOneRadio value="#{bean.type}" onclick="this.form.submit()">
        <f:selectItem itemLabel="A" itemValue="1"/>
        <f:selectItem itemLabel="B" itemValue="2"/>
    </h:selectOneRadio>
</h:form>
<h:form id="formMention">
    <h:selectOneMenu ... rendered="#{bean.type == 1}">
        <f:selectItems ... />
    </h:selectOneMenu>
</h:form>