Java 如果在使用@RequestParam时需要自定义转换器,我应该使用什么?
我有一个方法签名,如下所示Java 如果在使用@RequestParam时需要自定义转换器,我应该使用什么?,java,spring,spring-mvc,Java,Spring,Spring Mvc,我有一个方法签名,如下所示 public void deposit(@RequestParam("accountId") Integer accountId, @RequestParam("amount") BigDecimal amount) {...} 因为我有一个特定于语言环境的十进制值,需要转换为BigDecimal,所以是否有一些注释允许我设置诸如@decimal(“#######,####”)或其他内容之类的传入数据 public void
public void deposit(@RequestParam("accountId") Integer accountId,
@RequestParam("amount") BigDecimal amount) {...}
因为我有一个特定于语言环境的十进制值,需要转换为BigDecimal,所以是否有一些注释允许我设置诸如@decimal(“#######,####”)或其他内容之类的传入数据
public void deposit(@RequestParam("accountId") Integer accountId,
@RequestParam("amount") @NumberFormat(pattern = "###.###,##") BigDecimal amount)
{...}
您需要
才能启用它
另请参见:
<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>
Nice one(+1)你知道我是否可以注册一个全局转换器来避免@NumberFormat注释吗?@Arthur:也许你可以通过自定义FormattingConversionServiceFactoryBean
来为BigDecimal
安装一个自定义格式化程序,看看它是如何在<代码> MVC展示箱中完成的。考虑使用字符串参数类型来请求参数。如果在代码中执行数字转换,则会捕获针对格式不正确的参数引发的NumberFormatException。