2016-09-20 45 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> 

它正確地這些值傳遞到豆,但它表現奇怪當顯示這些值時。如果布爾值爲true,則它會正確選擇「是」單選按鈕。但是,如果布爾值爲假,它會選擇「不適用」按鈕,如果布爾值爲空,則根本不會選擇任何內容。我已經用<h:selectOneMenu>進行了測試,效果很好。這裏發生了什麼?

+0

任何人都有這個運氣? – Joe

回答

0

Spacejockey,

如果你使用布爾(對象類型)沒有問題,但如果你使用布爾(基本型),你不能爲空值分配給您的變量。

例子:

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

在您的XHTML變化真實#{TRUE}和同爲假:

<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? 你可以把代碼? –

相關問題