JSF - 选择一个RadioButton并且不可见outputText

时间:2012-05-25 12:37:32

标签: java jsf jsf-2 visible invisible

我的xhtml页面中有一个单选按钮和一个outputText。

当我选择单选按钮时,我希望outputText可见 当我取消选择单选按钮时,OutputText将不可见。

什么是可见/不可见标签?以及如何使用它?

有人知道吗?

由于

1 个答案:

答案 0 :(得分:2)

您可以检查输出文本父级的rendered属性中的单选按钮值。您可以使用单选按钮组内的<f:ajax>在每次更改单选按钮时更新输出文本的父级。

开球示例:

<h:form id="form">
    <h:selectOneRadio value="#{bean.radio}">
        <f:selectItem itemValue="one" itemLabel="This should hide output text" />
        <f:selectItem itemValue="two" itemLabel="This should show output text" />
        <f:ajax render="output" />
    </h:selectOneRadio>
    <h:panelGroup id="output">
        <h:outputText value="output text" rendered="#{bean.radio == 'two'}" />
    </h:panelGroup>
</h:form>

请注意,您无法指向输出文本本身的id,因为ajax render需要一个始终呈现的组件才能更新其内容。


更新根据您的评论,您似乎表明您正在寻找客户端解决方案而不是服务器端解决方案。在这种情况下,只需抓取基本的JavaScript。

<h:form id="form">
    <h:selectOneRadio value="#{bean.radio}" onclick="document.getElementById('form:output').style.display = (value == 'two' ? 'block' : 'none')">
        <f:selectItem itemValue="one" itemLabel="This should hide output text" />
        <f:selectItem itemValue="two" itemLabel="This should show output text" />
    </h:selectOneRadio>
    <h:outputText id="output" value="output text" style="display: #{bean.radio == 'two' ? 'block' : 'none'}" />
</h:form>