SpringMVC的自定义数据类型转换器
当jsp页面传递的参数类型(String)和Controller方法的形参类型(可能是简单类型,也可能是对象)不一致时,参数绑定不成功,比如:
日期类型的数据绑定,jsp页面传递的是String型日期类型,但POJO对象的日期类型是java.util.Date或java.sql.Date(当然也可以使用String型,但存入数据库时还是要转换),这个时候就要自定义一个转换器,把String型的日期属性转换成和POJO的日期类型一致,转换器的定义和使用步骤:
因为参数的绑定是由处理器适配器来完成(处理器适配器会调用组件去Controller的方法中进行数据绑定),而处理器适配器的配置是在springmvc.xml中配置的(即注解驱动)
1. 在springmvc.xml中配置:
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
2. 因为conversion-service这个组件中都是spring中的一个个bean,所以要定义一个bean(FormattionConversionServiceFactoryBean)
3. 自定义一个日期转换器, 包:cn.itcast.ssm.controller.converter CustomDateConverter.java
说明:Converter<String, Date>中的String是jsp页面传递的数据类型(即String型的日期属性), Date是要转成的日期类型,
根据以下的编码可知,其实转换器就是程序员写了一个工具类让框架去自动转换而已(和自己写的日期工具类在使用上没有本质区别)