2016-05-07 11 views
0

Ich habe eine bearbeitbare Datentabelle, die Spalte mit Boolean-Typ enthält. Beim Bearbeiten dieser Spalte wird mit dem selectOneMenu der Wert "true", "false" oder "null" ausgewählt. Wenn ich den Bearbeitungsmodus betrete, ist die Standardauswahl wahr, wenn der Wert null ist.selectOneMenu default selection null

Wie könnte dieses Problem gelöst werden? Eine andere Frage, es ist ein guter Ansatz, um Enity Bean (das Ergebnis einer Datenbankabfrage) zu verwenden, oder ich muss eine Managed Bean erstellen?

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> 

Entity 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; 
    } 
    ... 

Antwort

-1

Code ändern zu diesem

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

Wie für Ihre Bohnen, ist es preferrable verwaltet Bohnen in der Ansicht zu verwenden Controller

+0

Dies ist nicht korrekt. Erklärung zu 'noSelectionOption' finden Sie hier: http://stackoverflow.com/q/11360030 – BalusC

+0

OK danke für die Erklärung – tfosra