この customConverter を inputText フィールドに追加します
<xp:inputText
id="inputText1"
value="#{statusBean.adMoney}">
<xp:this.converter>
<xp:customConverter
getAsObject='#{javascript:value=="" ? 0 : parseFloat(value)}'
getAsString='#{javascript:value==0 ? "" : value.toString()}' />
</xp:this.converter>
</xp:inputText>
常に値「0.0」を非表示にします。このフィールドは、最初とユーザーが「0」を入力して送信するたびに空になります。
アップデート:
「0」が有効な値である場合、これはより良い解決策です:
doubleフィールドの代わりに Bean で使用しDoubleます。クラスのように、それDoubleはすることができます null。上記のコードを適応させると、次のようになります。
<xp:inputText
id="inputText1"
value="#{statusBean.adMoney}">
<xp:this.converter>
<xp:customConverter
getAsObject='#{javascript:value=="" ? null : parseFloat(value)}'
getAsString='#{javascript:value==null ? "" : value.toString()}' />
</xp:this.converter>
</xp:inputText>
しかし、幸いなことに、この customConverter の動作はすでに inputText コントロールの標準になっています。Doubleフィールド値が常にnull編集ボックスに空の値として表示されます。ユーザーが編集ボックスの数字を削除すると、Bean のフィールドは に設定されnullます。
Doubleそのため、フィールドの代わりにdoubleフィールドを使用する場合、次のコードのみが必要です。
<xp:inputText
id="inputText1"
value="#{statusBean.adMoney}">
</xp:inputText>