虽然SpringMVC默认的 ConversionService 可以做 strings, numbers, enums, collections, maps 和其他一些常见类型之间的转换, 但这远远不够, 一些自定义类型的数据转换需要我们自定义, 并且将自定义的转换类加入到 id="conversionService" 的bean中, 如下:
1
2
3
4
5
6
7
8<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"> <property name="converters"> <set> <bean class="example.MyCustomConverter"/> </set> </property> </bean>
将其中 example.MyCustomConverter 换成自定义的类. 若有多个自定义转换器, 继续在set标签中添加 bean 即可.
至此, 自定义类型的转换已经完成, 但还存在一个问题,比如: 比如字符串转日期类型, 系统提供了这样一个数据格式化方法, 在日期变量声明时加上注解 @DateTimeFormat(pattern="yyyy-MM-dd"), 表单输入的字符串便可以自动格式化成对应的日期类型. 若按照上述ConversionService 的配置方法, 依然会返回400的错误, 这是怎么回事呢?
原因在于这个 bean 的 class: org.springframework.context.support.ConversionServiceFactoryBean 只能提供 类型转换服务, 而不提供数据格式化服务,因此 我们需要将 这个class修改为既能提供类型转换服务, 又可以提供数据格式化服务的: org.springframework.format.support.FormattingConversionServiceFactoryBean
1
2
3
4
5
6
7
8<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters"> <set> <bean class="example.MyCustomConverter"/> </set> </property> </bean>
最后
以上就是动听黑裤最近收集整理的关于SpringMVC 配置多个conversionService的全部内容,更多相关SpringMVC内容请搜索靠谱客的其他文章。
发表评论 取消回复