欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring MVC自定义类型转换器

程序员文章站 2022-07-12 19:40:36
...

前言

  在Spring MVC体系结构中,有一个非常重要的一个组件那就是:类型转换器
  在 类型转换器 中主要实现的工作。我们的数据都是通过表单进行提交的,但是在表单中其实又都是以字符串的形式进行传输,但是到了底层,我们是使用到更加详细的数据类型。比如:IntegerDate 之类的数据类型。但我们会在快速入门Spring MVC。会发现,根本没有提到这个东西,因为Spring MVC框架已经帮我们写好了一部分,比如:String 变成了 Integer 。但有的时候,我们却往往不满足,我们还有更多的需求。比如:我们传入字符串2020-11-23 这是一个字符串,我们最终想要得到这样一个字符串显然不可能。因此,我们需要自定义类型转换器,配置一点内容即可。
Spring MVC自定义类型转换器
Spring MVC自定义类型转换器

自定义类型转换器步骤

  1. 实现Converter接口。使用泛型方式,更加方便
  2. 重新convert方法

**StringToDateConverter.java**

package utils;

import org.springframework.core.convert.converter.Converter;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class StringToDateCoverter implements Converter<String, Date> {
    @Override
    public Date convert(String s) {
        try {
            return new SimpleDateFormat("yyyy-mm-dd").parse(s);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

  1. 给springmvc核心配置文件添加ConversionServiceFactoryBeanBean对象加入ioc容器
	<bean class="org.springframework.context.support.ConversionServiceFactoryBean" id="conversionServiceFactoryBean">
        <property name="converters">
            <list>
                <bean class="utils.StringToDateCoverter"/>
            </list>
        </property>
    </bean>
  1. 给springmvc注解,告知扩展了类型转换器
<!--    开启springmvc注解   -->
    <mvc:annotation-driven conversion-service="conversionServiceFactoryBean"/>

重新测试
Spring MVC自定义类型转换器