2012-03-14 15 views
0

と私は私は、これは4桁の積分と番号については、エラーになります期待していたコードF:convertNumber属性パターン

<h:inputText id="amount" value="#{bean.amount}"> 
    <f:convertNumber pattern="##0.00" /> 
</h:inputText> 

次使用しようとしています。しかしそれは喜んでそのような数字を受け入れ、変換エラーを与えません。

なぜでしょうか?

答えて

2

おそらく、コンバージョンと検証を組み合わせているとします。コンバータの目的は、数値の表示方法を記述し、ユーザーが間違ったデータ型を入力した場合に変換エラーが発生することです。

あなたは、例えば使用することができます

<h:inputText id="amount" value="#{bean.amount}"> 
    <f:convertNumber pattern="##0.00" maxIntegerDigits="4"/> 
</h:inputText> 

をいますが、コンバータは「444.00」に変換します4444を入力した場合、これは変換エラーをスローしません。

<h:inputText value="#{controllerBean.number}" > 
    <f:convertNumber pattern="##0.00" maxIntegerDigits="3"/> 
    <f:validateDoubleRange maximum="1000"/> 
</h:inputText> 
+0

おかげマット、私は '@Digits(整数= 3、分数= 2としてbean.amountを変更:あなたが必要なもの4444

がバリデータであるとしてではなく、あなたのバッキングBean値に正しく格納されます)private BigDecimal amount;および** NumberConverter **の代わりに** BigDecimalConverter **を使用しました。 –

関連する問題