selectOneMenu默认选择为null

时间:2016-05-07 20:33:14

标签: jsf jsf-2 primefaces

我有一个可编辑的数据表,包含布尔类型的列。编辑此列时,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;
    }
    ...

1 个答案:

答案 0 :(得分:-1)

将您的代码更改为此

<h:selectOneMenu value="#{member.active}" style="width:100%">
    <f:selectItem noSelectionOption="true"/>
    <f:selectItems value="#{memberManagementController.activeLabels}" />
</h:selectOneMenu>

至于您的bean,最好在视图控制器中使用托管bean