SpringMVC数据转换

SpringMVC数据转换

SpringMVC荣国反射机制对目标处理方法的签名进行分析,并将请求消息绑定到处理方法的参数中。大致流程如下图

 

SpringMVC框架将ServletRequest对象及处理方法的参数对象实例传递给DateBinder,DateBinder调用装配在Spring Web上下文中的ConversionService组件进行数据类型转换、数据格式化工作,并将ServletRequest中的消息填充到参数对象中。然后在调用Validator组件对已经绑定了请求消息数据的参数对象进行数据合法性校验,并最终生成数据绑定加多BindingResult对象。BindingResult包含了已完成数据绑定的参数对象,还包含响应的校验错误对象,SpringMVC抽取BindingResult中的参数对象及校验错误对象,将它们赋给处理方法的响应参数。

 

Spring MVC 上下文中内建了很多转换器,可完成大多数 Java 类型的转换工作。

自定义类型转换器

ConversionService 是 Spring 类型转换体系的核心接口。

可以利用 ConversionServiceFactoryBean 在 Spring 的 IOC 容器中定义一个 ConversionService. Spring 将自动识别出IOC 容器中的 ConversionService,并在 Bean 属性配置及
Spring MVC 处理方法入参绑定等场合使用它进行数据的转换
可通过 ConversionServiceFactoryBean 的 converters 属性注册自定义的类型转换器

<mvc:annotation-driven conversion-service=“conversionService”/> 会将自定义的 ConversionService 注册到Spring MVC 的上下文中

<!-- 装配自定义的类型转换器 -->
            <mvc:annotation-driven conversion-service="conversionService"/>
            <!-- 自定义的类型转换器 -->
            <bean id="conversionService"
             	class="org.springframework.context.support.ConversionServiceFactoryBean">
             	<property name="converters">
             		<list>
             			<bean class="org.fkit.converter.StringToDateConverter" p:datePattern="yyyy-MM-dd"></bean>
             		</list>
             	</property>
            </bean>

关于 mvc:annotation-driven

<mvc:annotation-driven /> 会自动注册 RequestMappingHandlerMapping、RequestMappingHandlerAdapter 与ExceptionHandlerExceptionResolver 三个bean。
还将提供以下支持:
  支持使用 ConversionService 实例对表单参数进行类型转换
  支持使用 @NumberFormat annotation、@DateTimeFormat 注解完成数据类型的格式化
  支持使用 @Valid 注解对 JavaBean 实例进行 JSR 303 验证
  支持使用 @RequestBody 和 @ResponseBody 注解



一共有三种基本方法来进行数据转换

1、  使用ConversionService转换数据

2、  使用@InitBinder添加自定义编辑器转换数据

3、  使用WebBindingInitializer注册全局自定义编辑器转换数据

 

倘若您三种同时使用,顺序是这样的:

1、  使用ConversionService转换数据

2、  使用@InitBinder添加自定义编辑器转换数据

3、  使用WebBindingInitializer注册全局自定义编辑器转换数据

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring MVC中,数据转换是指将请求参数转换为制器方法的参数类型或将控制器方法的返回值转换为响应数据的过程。Spring MVC提供了多种数据转换的方式,包括基本类型转换、日期类型转换、集合类型转换等。 1. 基本类型转换:Spring MVC可以自动将请求参数转换为控制器方法的基本类型参数,如字符串转换为整数、浮点数等。 2. 自定义类型转换:如果需要将请求参数转换为自定义的Java对象,可以使用自定义类型转换器。通过实现Converter接口或使用注解@Converter来定义类型转换器,然后在配置文件中进行注册。 3. 格式化:Spring MVC支持使用注解@DateTimeFormat对日期类型进行格式化,将请求参数按照指定的格式转换为日期对象。 4. 集合类型转换:当控制器方法的参数或返回值是集合类型时,Spring MVC可以自动将请求参数转换为集合对象或将集合对象转换为响应数据。可以使用注解@InitBinder对集合类型进行配置。 5. JSON数据转换:Spring MVC内置了对JSON数据的支持,可以将请求参数或响应数据以JSON格式进行转换。可以使用注解@ResponseBody将方法的返回值直接转换为JSON格式的响应数据。 6. XML数据转换:除了JSON数据,Spring MVC还支持将请求参数或响应数据以XML格式进行转换。可以使用注解@RequestBody将请求参数转换为XML格式的对象,使用注解@ResponseBody将方法的返回值转换为XML格式的响应数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值