对于在 selectOneMenu 标签中选择小写布尔数据类型,如何绕过默认值为 false?

For selecting lower case boolean data type in selectOneMenu tag, how to bypass default value as false?

呈现此标签时,我预计“--Select one--”将显示为默认选择,但选择了 itemLabel as "False"。我的猜测是它可能与 java 默认为 false 中的小写布尔值有关,但我不太确定。

这个标签在dataTable里面,变量"foo"代表的每条记录都是java实体域对象的一个​​实例。我试图了解为什么会发生这种情况以及如何纠正它。非常感谢您在这件事上的建议。

<p:selectOneMenu value="#{foo.answer}">
    <f:selectItem itemLabel="--Select one--" itemValue="" />
    <f:selectItem itemLabel="True" itemValue="true" />
    <f:selectItem itemLabel="False" itemValue="false" />
</p:selectOneMenu>

"foo" 实体域对象。

@Entity
@Table(name="FOO")
public class Foo {

     @Type(type="org.hibernate.type.NumericBooleanType")
     @Column(name="answer", nullable=false)
     private boolean answer;
     ...
}

布尔值确实默认为 false。使其成为布尔值...您的 nullable=false 可防止存储 NULL 提交...