我有一个可编辑的数据表,包含布尔类型的列。编辑此列时,selectOneMenu用于选择值" true"," false"或" null"。当我进入编辑模式时,如果值为null,则默认选择为true。
如何解决这个问题?另一个问题是使用Enity bean的好方法(数据库查询的结果),还是我必须创建一个Managed bean?
XHTML:可
<p:column headerText="Active">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{member.active}" />
</f:facet>
<f:facet name="input">
<h:selectOneMenu value="#{member.active}" style="width:100%">
<f:selectItems value="#{memberManagementController.activeLabels}" />
</h:selectOneMenu>
</f:facet>
</p:cellEditor>
</p:column>
实体Bean:
@Entity
@NamedQueries({
@NamedQuery(...
})
@Table(name="Member")
public class Member implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private Boolean active;
public Boolean getActive() {
return this.active;
}
public void setActive(Boolean active) {
this.active = active;
}
...
答案 0 :(得分:-1)
将您的代码更改为此
<h:selectOneMenu value="#{member.active}" style="width:100%">
<f:selectItem noSelectionOption="true"/>
<f:selectItems value="#{memberManagementController.activeLabels}" />
</h:selectOneMenu>
至于您的bean,最好在视图控制器中使用托管bean