有时参数的转换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> {@Overridepublic 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 10 处理器方法的返回值(ModelAndView和String))
SpringMVC 07 @RequestMapping说明
文章转载自敲代码的人,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




