我是否有如下方法签名
public void deposit(@RequestParam("accountId") Integer accountId,
@RequestParam("amount") BigDecimal amount) {...}
因为我有一个特定于区域设置的十进制值需要转换为BigDecimal ,是否有一些注释允许我设置传入的数据,如@Decimal(“###。 ###,##“)或其他什么???
答案 0 :(得分:4)
Spring 3有@NumberFormat
注释:
public void deposit(@RequestParam("accountId") Integer accountId,
@RequestParam("amount") @NumberFormat(pattern = "###.###,##") BigDecimal amount)
{...}
您需要<mvc:annotation-driven>
才能启用它。
另见:
答案 1 :(得分:2)
更一般地说,您可以使用ConversionServiceFactoryBean注册自定义转换器。完成后,您需要add a custom web binding initializer到处理程序适配器
示例配置:
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="webBindingInitializer">
<bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
<property name="conversionService" ref="conversionService"/>
</bean>
</property>
</bean>
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<ref bean="myCustomConverter"/>
</list>
</property>
</bean>