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