暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SpringMVC 13 自定义参数绑定

敲代码的人 2019-10-09
149

有时参数的转换springMVC不能内部没有现成的转换类,这时需要我们自己写一个类进行参数绑定


例如:日期数据有很多种格式,springmvc没办法把字符串转换成日期类型。所以需要自定义参数绑定。


控制器类:

    @RequestMapping(value = "test_string_date")
public String test_string_date(Date date,HttpServletRequest request){
System.out.println("StringToDate==" + date);
request.setAttribute("date",date);
return "show";
}
复制

测试:



前端控制器接收到请求后,找到注解形式的处理器适配器,对RequestMapping标记的方法进行适配,并对方法中的形参进行参数绑定。可以在springmvc处理器适配器上自定义转换器Converter进行参数绑定。所以我们需要自定义转换器


需要实现Converter接口

public class StringToDateConverter implements Converter<String, Date> {
@Override
public Date convert(String source) {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try{
Date date = format.parse(source);
return date;
}catch (Exception e){
throw new RuntimeException("输入日期有误");
}
}
}
复制



在springmvc.xml配置文件中配置类型转换器。

spring配置类型转换器的机制是,将自定义的转换器注册到类型转换服务中去。

    <!--配置类型转换器-->
<bean id="converterService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<!-- 给工厂注入一个新的类型转换器 -->
<property name="converters">
<array>
<!--配置自定义类型转换器-->
<bean class="com.huge.util.StringToDateConverter"/>
</array>
</property>
</bean>
复制


在annotation-driven标签中引用配置的类型转换服务

 <!--在annotation-driven标签中引用配置的类型转换服务-->
<mvc:annotation-driven conversion-service="converterService"/>
复制


测试:




喜欢转发

明天见

SpringMVC 12 请求参数返回值 Object

SpringMVC 11 请求参数返回值void

SpringMVC 10 处理器方法的返回值(ModelAndView和String))

SpringMVC 09 请求参数中文乱码问题

SpringMVC 08 请求参数绑定

SpringMVC 07  @RequestMapping说明

SpringMVC 06 注解式开发入门

SpringMVC 05 再解<url pattern/>

SpringMVC 04 执行流程的简单原码分析分析

SpringMVC 03 视图解析器及简述执行流程

SpringMVC 02 概述及配置式入门

SpringMVC 01 前述 三层架构和MVC设计模式


文章转载自敲代码的人,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论