将此 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”是一个有效值,那么这是一个更好的解决方案:
在 bean 中使用一个字段而不是double
一个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>