Spring笔记(05) SpringMVC自定义数据类型转换

前面一篇笔记中提到,前端传递的 HTTP 参数都是 String 字符串类型,当我们后台接收 int 类型时,HandlerAdapter 可以自动完成数据类型转换。

但如果是其他非基本数据类型呢?

比如 Date类型,HandlerAdapter 是无法将 String类型自动转换成 Date类型的,此时需要实现 Converter接口来辅助 Spring MVC完成数据类型转换。

1、创建 DateConverter 类,并实现 Converter 接口。

public class DateConverter implements Converter<String, Date> {

    private String pattern;

    public DateConverter(String pattern) {
        this.pattern = pattern;
    }

    @Override
    public Date convert(String s) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
        try {
            return simpleDateFormat.parse(s);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
}

2、编写 springmvc.xml

<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <list>
                <bean class="com.guozh.converter.DateConverter">
                    <constructor-arg type="java.lang.String" value="yyyy-MM-dd"/>
                </bean>
            </list>
        </property>
    </bean>
    <mvc:annotation-driven conversion-service="conversionService"/>

除了 Date 这种数据类型,还能转换成自定义对象,比如创建一个实体类对象 Student,然后定义一个 Converter<String,Student> 转换类,代码如上一样。

以上代码笔记内容来自付费专栏:案例上手 Spring 全家桶

PS:并没有透露关键内容,纯粹是零碎笔记。如果侵犯版权,请联系我。

本文由老郭种树原创,转载请注明:https://guozh.net/spring-custom-data-converter/

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注