2016-09-20 4 views
1

私は次のようにselectOneRadioタグで設定されているブールありますselectOneRadio(クロサギ科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> 

をそれが正しくBeanにこれらの値を渡しますが、それは不思議な振る舞いこれらの値を表示するとき。ブール値が真の場合、「はい」ラジオボタンが正しく選択されます。ただし、Booleanがfalseの場合は、「適用外」ボタンが選択され、Booleanがnullの場合は何も選択されません。私は<h:selectOneMenu>とそれをテストして、それは完全に正常に動作します。何が起きてる?

+0

いずれかの運がありますか? – Joe

答えて

0

Spacejockey、

あなたはブール(プリミティブ型)を使用している場合は、あなたの変数にNULL値を割り当てることはできませんが、ブール(オブジェクトタイプ)問題ありませんを使用している場合

例:偽のための{本当}#に真と同じあなたのXHTMLの変更で

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

:私はそれが助けを願ってい

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

...

グッドラック!

+0

コメントありがとうございます。これは本当にブール値ですが、 "true"の代わりに "#{true}"を追加しても違いはありません。 – Spacejockey

+0

ブール変数のgetterとsetterを正しく定義しましたか? バックベイへのデータの送信方法は何ですか? commandButton経由ですか? コードを入力してください。 –

関連する問題