0

这是我对 oneRadio 的想法

<h:selectOneRadio value="#{controller.myboolean}">
    <f:selectItem itemValue="#{true}" itemLabel="Yes"/>
    <f:selectItem itemValue="#{false}" itemLabel="No"/>
</h:selectOneRadio>

这里使用 commandLink:

<h:commandLink value="YES" action="#{controller.setMyboolean(true)}"/>
<br/>
<h:commandLink value="NO" action="#{controller.setMyboolean(false)}"/>

在我的应用程序中,我想显示或禁用我的表格<h:selectOneRadio>。例如,如果我选择了第一个单选按钮,则会显示表格。我不会单击 a<h:commandButton>来更改值myboolean。因此,我对我的申请的例外反应必须像<h:commandLink>. 我单击它,值会发生变化,显示表格。但就我而言,我想使用<h:selectOneRadio>

4

3 回答 3

1

我建议你使用 primefaces 扩展。对于一些布尔值来说,这是一些不错的组件......比如: http: //fractalsoft.net/primeext-showcase-mojarra/views/triStateCheckbox.jsf

您还可以使用 primefaces 的 booleanButton,例如: http: //www.primefaces.org/showcase/ui/selectBooleanButton.jsf

无论如何,我希望这对您有所帮助,如果您可以灵活地使用另一个不同的组件,那么 selectOneRadio... 而且如果您可以自由地在项目中添加更多依赖项..

再见

于 2012-12-22T20:45:19.580 回答
0

除非您在幕后设置它,否则问题很可能是您需要实现一个转换器来处理字符串“true”和“false”到boolean. 在您commandLink的 EL 中指定的操作将布尔值传递给您的函数。但是,在selectOneRadio示例中,您提交的是一个字符串。

有关更多信息,请查看:http: //download.oracle.com/otn_hosted_doc/jdeveloper/j2ee101302/jsf_apps/eventvalidate/sf_avc_converters.html

于 2012-12-22T15:02:13.603 回答
-1

这很好用:

<h:selectOneRadio value="#{controller.myboolean}" valueChangeListener="#{controller.save}" immediate="true" onchange="this.form.submit()">
    <f:selectItem itemValue="#{true}" itemLabel="Yes"/>
    <f:selectItem itemValue="#{false}" itemLabel="No"/>
</h:selectOneRadio>

并使用此 ChangeEvent 方法():

public void speichereRadioButtons(ValueChangeEvent vce){
   boolean temp=(Boolean) vce.getNewValue();
   setmyBoolean(temp);
   FacesContext.getCurrentInstance().renderResponse();
}
于 2012-12-22T16:39:07.290 回答