我使用JSF2中的<h:selectOneRadio>
组件来创建radiobuttons。一个是“是”,另一个是“否”。请注意,我不能在此处使用复选框。
在我的支持bean中,我有一个boolean
属性。当选择“是”时,我希望该布尔值为true
,当选择“否”时,我希望它为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>
答案 0 :(得分:0)
JSF在网络服务器中运行并生成HTML。 Ajax / JavaScript在webbrowser中运行,并处理JSF生成的HTML输出。您无法更新JSF组件的HTML表示形式,而JSF组件本身从未呈现为HTML。您需要ajax更新始终呈现的JSF组件的HTML表示:
<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"
,因为这是错误的,默认的已经是正确的)