2016-09-20 2 views
1

ich einen Booleschen haben, die mit einem selectOneRadio Tag wie folgt festgelegt:selectOneRadio mit Nullwert nicht richtig angezeigt (Mojarra 2.1.28)

<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> 

Es geht richtig diese Werte an die Bohne, aber es verhält sich seltsam wenn diese Werte angezeigt werden. Wenn der Boolesche Wert wahr ist, wird das Optionsfeld "Ja" richtig ausgewählt. Wenn der Boolesche Wert jedoch false ist, wird die Schaltfläche "Nicht anwendbar" ausgewählt, und wenn der Boolesche Wert Null ist, wird überhaupt nichts ausgewählt. Ich habe es mit <h:selectOneMenu> getestet und das funktioniert einwandfrei. Was ist denn hier los?

+0

Hat irgendjemand Glück dabei? – Joe

Antwort

0

Spacejockey,

Wenn Sie Boolean (Objekttyp) kein Problem, aber wenn Sie boolean (Urtyp) verwenden Sie können nicht null Wert Ihrer Variablen zuweisen.

Beispiel:

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

In Ihrer XHTML Veränderung wahr # {true} und gleich für falsch:

<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> 

ich es helfen, hoffen ...

Good Luck!

+0

Vielen Dank für Ihren Kommentar. Es ist in der Tat ein Boolescher Wert, aber das Hinzufügen von "# {true}" anstelle von "true" scheint keinen Unterschied zu machen. – Spacejockey

+0

Sie haben Getter und Setter für die Boolesche Variable richtig definiert? Was ist die Methode zum Senden von Daten an backbean? Durch eine Befehlsschaltfläche? Könnten Sie den Code eingeben? –