下面是我对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>显示或禁用我的表。例如,如果我选择了第一个radioButton,则会显示该表。我不需要单击<h:commandButton>来更改myboolean的值。因此,我的应用程序的异常反应必须类似于<h:commandLink>。我点击它,值发生变化,表格就会显示出来。但在我的例子中,我想使用<h:selectOneRadio>
发布于 2012-12-23 04:45:20
我建议您使用primefaces扩展。这是一些布尔值的很好的组成部分...喜欢:http://fractalsoft.net/primeext-showcase-mojarra/views/triStateCheckbox.jsf
你也可以使用primefaces的booleanButton,比如:http://www.primefaces.org/showcase/ui/selectBooleanButton.jsf
无论如何,我希望这对你有帮助,如果你可以灵活地使用另一个不同于selectOneRadio的组件……另外,如果您有向项目中添加更多依赖项的自由..
再见
发布于 2012-12-22 23:02:14
除非您在幕后设置了它,否则问题很可能是您需要实现一个转换器来处理字符串"true“和"false”到boolean的转换。在commandLink中,EL中指定的操作将一个布尔值传递给函数。但是,在selectOneRadio示例中,您提交的是一个字符串。
有关更多信息,请查看:http://download.oracle.com/otn_hosted_doc/jdeveloper/j2ee101302/jsf_apps/eventvalidate/sf_avc_converters.html
发布于 2012-12-23 00:39:07
这非常好用:
<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();
}https://stackoverflow.com/questions/14003825
复制相似问题