0

私はSpringMVCプロジェクトに取り組んでおり、フォームの国際化、特に数値のフォーマットで問題が発生しました。

私はすでにfmt:formatNumberを使用して、現在選択されているロケールに従って数値をフォーマットしています。

<fmt:formatNumber value="${object[field]}"/>

このように、数値を表示するときは、数値の書式設定がうまく機能します。しかし、フォームはどうですか?

現時点では、float値を受け取ることになっている入力フィールドには、0.0が事前に入力されており、「。」を使用することを期待しています。選択したロケールに関係なく、小数点記号として。「、」を含む値はサーバーによって拒否されます(...文字列を必要な型floatに変換できません...)。

入力フィールドで適切な数値形式を使用して受け入れるにはどうすればよいですか?

4

1 に答える 1

2

ご覧になりました@NumberFormatか?入力フィールドがバインドされているプロパティに注釈を付けると、適切なフォーマットになります。何かのようなもの:

@NumberFormat(style = Style.NUMBER)
private BigDecimal something;

このスタイルは、「現在のロケールの汎用数値形式」です。おそらく、現在のロケールはからスレッドごとに決定されますLocaleContextHolder

アプリはアノテーション駆動型である必要があります。ドキュメントの「アノテーション駆動型のフォーマット」のセクションも参照してください。

この回答DecimalFormatSymbolsで提案されているように、を確認することをお勧めします。

于 2012-07-10T10:30:49.237 に答える