如何使输入字段接受依赖于区域设置的数字格式?

时间:2012-07-10 10:26:01

标签: spring-mvc localization jstl

我正在开发一个Spring MVC项目,并遇到了表单国际化的问题,尤其是数字格式。

我已经使用fmt:formatNumber根据当前选择的区域设置格式化数字。

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

像这样,当我显示数字时,数字格式化效果很好。但表格怎么样?

目前,应该接收浮点值的输入字段预先填充0.0并期望我使用“。”作为小数分隔符,无论选择何种语言环境。包含“,”的值被服务器拒绝(...无法将String转换为所需类型的float ...)。

如何使用输入字段并接受相应的数字格式?

1 个答案:

答案 0 :(得分:2)

你看过@NumberFormat了吗?如果注释输入字段绑定的属性,则应该导致正确的格式化。类似的东西:

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

此样式为"general-purpose number format for the current locale"。我想,当前的语言环境是从LocaleContextHolder开始的。{/ p>

您的应用需要annotation-driven,另请参阅文档中的"Annotation-driven Formatting"部分。

您可能需要按照DecimalFormatSymbols中的建议查看this answer