selectOneRadio,null值无法正确显示(Mojarra 2.1.28)

时间:2016-09-20 14:25:08

标签: jsf el

我有一个使用selectOneRadio标记设置的布尔值如下:

<h:selectOneRadio value="#{bean.someBoolean}">
    <f:selectItem itemValue="true" itemLabel="Yes"/>
    <f:selectItem itemValue="false" itemLabel="No"/>
    <f:selectItem itemValue="#{null}" itemLabel="Not applicable"/>
</h:selectOneRadio>

它正确地将这些值传递给bean,但在显示这些值时它表现得很奇怪。如果布尔值为true,则正确选择“是”&#39;单选按钮。但是,如果布尔值为false,则选择&#34;不适用&#34;按钮,如果Boolean为null,则根本不选择任何内容。我用<h:selectOneMenu>对它进行了测试,效果非常好。这里发生了什么?

1 个答案:

答案 0 :(得分:0)

Spacejockey,

如果使用布尔(对象类型)没问题,但如果使用布尔值(基本类型),则无法为变量赋值空值。

示例:

private boolean booleanPrimitiveVar; //(can't be null)
private Boolean booleanObjectVar; //(can be null)

在您的XHTML中,将true更改为#{true},对于false更改为

<h:selectOneRadio value="#{bean.someBoolean}">
    <f:selectItem itemValue="#{true}" itemLabel="Yes"/>
    <f:selectItem itemValue="#{false}" itemLabel="No"/>
    <f:selectItem itemValue="#{null}" itemLabel="Not applicable"/>
</h:selectOneRadio>

我希望它有所帮助...

祝你好运!