1.表单提交的任何数据类型全部都是字符串类型,但是后台定义Integer类 型,数据也可以封装上,说明Spring框架内部会默认进行数据类型转换
2.如果想自定义数据类型转换,可以实现Converter的接口
1自定义类型转换器类
package cn.wmq.ssm.utils;
import org.springframework.core.convert.converter.Converter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @user
* @createDate 2020-02-19 19:36
*/
public class StringToDateConverter implements Concverter<String, Date> {
public Date convert(String source) {
if (source == null) {
throw new RuntimeException("参数不能为空");
}
try {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
return df.parse(source);
} catch (Exception e) {
throw new RuntimeException("类型转换异常---");
}
}
}
这个是我们定义的字符串转换为Date类型的一个转换器,通俗的来讲就是讲字符串表单提交过来的字符串根据咱们自己规定的格式转换为Date类型,
其中Concverter<String, Date> 的泛型意为:前面的是转换前的类型即String,后面的指转换后的类型即Date
2注册自定义类型转换器,在springmvc.xml配置文件中编写配置
<!-- 注册自定义类型转换器 -->
<bean id="conversionService2" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="cn.wmq.ssm.utils.StringToDateConverter"/>
</set>
</property>
</bean>
配置class:org.springframework.context.support.ConversionServiceFactoryBean
并进行属性注入 将我们自定义的bean注入进去
3最后引用自定义类型转换器
<!--处理器映射器, 处理器适配器-->
<mvc:annotation-driven conversion-service="conversionService2"/>