1

我使用<h:selectOneRadio>JSF2 中的组件来创建单选按钮。一个是“是”,另一个是“否”。请注意,我不能在这里使用复选框。

在我的支持 bean 中,我有一个boolean属性。When "yes" is selected, I want that boolean to be trueand when "no" is selected I want it to be false. 我怎样才能做到这一点?

这不这样做:

<h:selectOneRadio value="#{bean.bool}">
    <f:selectItem itemValue="false" itemLabel="Yes" />
    <f:selectItem itemValue="true" itemLabel="No" />
    <f:ajax event="change" render="theDiv" />
</h:selectOneRadio>
<h:panelGroup layout="block" id="theDiv" rendered="#{bean.bool}">
....
</panelGroup>
4

1 回答 1

0

JSF 在网络服务器中运行并生成 HTML。Ajax/JavaScript 在 Web 浏览器中运行并处理 JSF 生成的 HTML 输出。您不能对 JSF 组件的 HTML 表示进行 ajax 更新,该组件本身永远不会呈现为 HTML。您需要对始终呈现的 JSF 组件的 HTML 表示进行 ajax 更新:

<h:selectOneRadio value="#{bean.bool}">
    <f:selectItem itemValue="false" itemLabel="Yes" />
    <f:selectItem itemValue="true" itemLabel="No" />
    <f:ajax render="foo" />
</h:selectOneRadio>
<h:panelGroup id="foo">
    <h:panelGroup layout="block" id="theDiv" rendered="#{bean.bool}">
    ...
    </panelGroup>
</h:panelGroup>

(请注意,我删除event="change"了,因为这是错误的,默认的已经是正确的)

也可以看看:

于 2012-09-25T16:41:46.637 回答