概述
虽然SpringMVC默认的 ConversionService 可以做 strings, numbers, enums, collections, maps 和其他一些常见类型之间的转换, 但这远远不够, 一些自定义类型的数据转换需要我们自定义, 并且将自定义的转换类加入到 id="conversionService" 的bean中, 如下:
<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
<bean id="conversionService"
class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="example.MyCustomConverter"/>
</set>
</property>
</bean>
由于日期的格式化是系统默认提供的, 所以不需要做额外配置, 若需要自定义格式化类型, 需要在<property name="formatters"></property>中加入 自定义的格式化类. 跟上边的 converters 类似.
最后
以上就是动听黑裤为你收集整理的SpringMVC 配置多个conversionService的全部内容,希望文章能够帮你解决SpringMVC 配置多个conversionService所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复