我正在尝试使用以下代码
<h:inputText id="amount" value="#{bean.amount}">
<f:convertNumber pattern="##0.00" />
</h:inputText>
对于具有4位积分的数字,我期望这会给出错误。但它很乐意接受这样的数字,不给出转换错误。
任何想法为什么?
答案 0 :(得分:2)
也许您正在通过转换混合验证。转换器的目的是描述数字的显示方式,如果用户输入了错误的数据类型,通常会抛出转换错误。
您可以使用例如:
<h:inputText id="amount" value="#{bean.amount}">
<f:convertNumber pattern="##0.00" maxIntegerDigits="4"/>
</h:inputText>
但如果输入4444,则不会抛出转换错误。转换器会将其转换为“444.00”。但是在你的支持bean中,值将被正确存储为4444。
您需要的是验证器:
<h:inputText value="#{controllerBean.number}" >
<f:convertNumber pattern="##0.00" maxIntegerDigits="3"/>
<f:validateDoubleRange maximum="1000"/>
</h:inputText>