6.SpringMVC-类型转换器

本文最后更新于2024.04.28-07:51,某些文章具有时效性,若有错误或已失效,请在下方留言或联系涛哥

为什么要使用类型转换器?

http发起请求的参数 都是以字符串的形式,那么springmvc 利用转换器可以把 传递过来的字符串,转换成需要的数据类型

以下是一些常见的内置转换器:

  1. StringToStringConverter:将字符串转换成任何类型。

  2. NumberToNumberConverterFactory:将 Number 子类型转换成其它 Number 子类型。

  3. StringToNumberConverterFactory:将字符串转换成 Number 类型。

  4. StringToBooleanConverter:将字符串转换成 Boolean 类型。

  5. NumberToBooleanConverter:将 Number 类型转换成 Boolean 类型。

  6. StringToEnumConverterFactory:将字符串转换成枚举类型。

  7. EnumToStringConverter:将枚举类型转换成字符串。

  8. StringToCharConverter:将字符串转换成 Character 类型。

  9. StringToLocaleConverter:将字符串转换成 Locale 类型。

  10. PropertiesToStringConverter:将 Properties 类型转换成字符串。

  11. StringToPropertiesConverter:将字符串转换成 Properties 类型。

转换器类型:

a.内置的类型转换器(略)

b.自定义类型转换器

自定义类型转换器的使用

1.创建 转换器类

该类实现 Converter<S,T> 接口,

2.重写 接口的 convert 方法,其中 s代表 原数据类型,T代表 要转换的数据类型

package com.edu.converter;
​
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
​
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
​
@Component("stringToDate")
public class StringToDateConverter implements Converter<String,Date> {
    public Date convert(String s) {
        DateFormat df=new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date date=df.parse(s);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
}

3.在mvc的配置文件中 注册 该转换器

a 配置 bean ConversionServiceFactoryBean

b 注入 converters 属性

c. 注册服务

d.前端传参的时候 直接控制器里 方法形参的对象名 即可

<!--类型转换器-->
<bean class="org.springframework.context.support.ConversionServiceFactoryBean" id="conversionService">
    <property name="converters">
        <set>
            <ref bean="stringToDate"></ref>
        </set>
    </property>
</bean>
<!--注册服务-->
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
阅读剩余
THE END