首页 > 其他分享 >Spring MVC之Converter类型转换器

Spring MVC之Converter类型转换器

时间:2022-11-22 08:56:10浏览次数:37  
标签:类型转换 转换 Converter Spring MVC 类型 转换器 String

Spring MVC 框架的 Converter<S,T> 是一个可以将一种数据类型转换成另一种数据类型的接口,这里 S 表示源类型,T 表示目标类型。开发者在实际应用中使用框架内置的类型转换器基本上就够了,但有时需要编写具有特定功能的类型转换器。

例如,用户输入的日期可能有许多种形式,如"December 25,2014"、"12/25/2014"和"2014-12-25",这些都表示同一个日期。默认情况下,Spring 会期待用户输入的日期样式与当前语言区域的日期样式相同。例如,对于美国的用户而言,就是月/日/年的格式。如果希望 Spring 在将输入的日期字符串绑定到 LocalDate 时,使用不同的日期样式,则需要编写一个 Converter,才能将字符串转换成日期。

java.time.LocalDate 类是 Java 8 的一个新类型,用来替代 java.util.Date。还使用新的 Date/Time API 来替换旧有的 Date 和 Calendar 类。

内置的类型转换器

在 Spring MVC 框架中,对于常用的数据类型,开发者无须创建自己的类型转换器,因为 Spring MVC 框架有许多内置的类型转换器用于完成常用的类型转换。Spring MVC 框架提供的内置类型转换包括以下几种类型:

标量转换器

名称 作用
StringToBooleanConverter String 到 boolean 类型转换
ObjectToStringConverter Object 到 String 转换,调用 toString 方法转换
StringToNumberConverterFactory String 到数字转换(例如 Integer、Long 等)
NumberToNumberConverterFactory 数字子类型(基本类型)到数字类型(包装类型)转换
StringToCharacterConverter String 到 Character 转换,取字符串中的第一个字符
NumberToCharacterConverter 数字子类型到 Character 转换
CharacterToNumberFactory Character 到数字子类型转换
StringToEnumConverterFactory String 到枚举类型转换,通过 Enum.valueOf 将字符串转换为需要的枚举类型
EnumToStringConverter 枚举类型到 String 转换,返回枚举对象的 name 值
StringToLocaleConverter String 到 java.util.Locale 转换
PropertiesToStringConverter java.util.Properties 到 String 转换,默认通过 ISO-8859-1 解码
StringToPropertiesConverter String 到 java.util.Properties 转换,默认使用 ISO-8859-1 编码

集合、数组相关转换器

名称 作用
ArrayToCollectionConverter 任意数组到任意集合(List、Set)转换
CollectionToArrayConverter 任意集合到任意数组转换
ArrayToArrayConverter 任意数组到任意数组转换
CollectionToCollectionConverter 集合之间的类型转换
MapToMapConverter Map之间的类型转换
ArrayToStringConverter 任意数组到 String 转换
StringToArrayConverter 字符串到数组的转换,默认通过“,”分割,且去除字符串两边的空格(trim)
ArrayToObjectConverter 任意数组到 Object 的转换,如果目标类型和源类型兼容,直接返回源对象;否则返回数组的第一个元素并进行类型转换
ObjectToArrayConverter Object 到单元素数组转换
CollectionToStringConverter 任意集合(List、Set)到 String 转换
StringToCollectionConverter String 到集合(List、Set)转换,默认通过“,”分割,且去除字符串两边的空格(trim)
CollectionToObjectConverter 任意集合到任意 Object 的转换,如果目标类型和源类型兼容,直接返回源对象;否则返回集合的第一个元素并进行类型转换
ObjectToCollectionConverter Object 到单元素集合的类型转换

 

标签:类型转换,转换,Converter,Spring,MVC,类型,转换器,String
From: https://www.cnblogs.com/xfeiyun/p/16914055.html

相关文章

  • Spring Security(2)
    您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 前面已经把需要的环境准备好了,包括数据库和SQL语句,现在再来写代码。至于安装MySQL什么的就跳过去了,娘度子里面一大把。......
  • Springboot整合Swagger常用注解(三)
    swagger注解主要是用来给swagger生成的接口文档说明用的1、@Api使用范围:用在类上注解,控制整个类生成接口信息的内容,表示对类的说明,也代表了这个类是swagger2的资源参......
  • SpringCloud Gateway 网关常用技术实现
    SpringCloudGateway是目前非常流行的网关中间件,类似于nginx一样,主要提供【路由转发】和【负载均衡】功能,目的是为微服务架构提供一种简单而有效的统一的API路由管理......
  • Spring MVC之Controller参数接收
    @RequestBody接收参数注意事项:@RequestBody:后台接收只能声明一个、且只能接收json@RequestBody:不能和form/data共存@RequestBody:必须是:contentType:"applicatio......
  • spring 源码bean加载过程
    1.xml文件加载#(XmlBeanDefinitionReader)解析spring.xml文件,注册registerBeanDefinitions1.entityResolver->schemaResolver主要加载META-INF/spring.schema......
  • Spring中定时任务@Schedule注解的使用
    概述@Scheduled注解是springboot提供的用于定时任务控制的注解,主要用于控制任务在某个指定时间执行,或者每隔一段时间执行.注意需要配合@EnableScheduling使用,配置@Sch......
  • spring之自定义注解
    @Target({ElementType.METHOD,ElementType.FIELD})@Retention(RetentionPolicy.RUNTIME)@Constraint(validatedBy=MyConstraintValidator.class)public@interface......
  • springboot实现无数据库启动
    问题springboot往往是作为b/s系统的server端的架子来使用,但是有些时候,是作为静默的server,并没有界面和数据库,但是springboot默认是链接数据库的,如何解决这个问题呢?使用sprin......
  • spring AOP
    一、什么是AOPAOP(AspectOrientedProgramming),即面向切面编程,可以说是OOP(ObjectOrientedProgramming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一......
  • Spring-IoC中Set和构造器注入
     新建Maven工程  修改pom文件1<?xmlversion="1.0"encoding="UTF-8"?>2<projectxmlns="http://maven.apache.org/POM/4.0.0"3xmlns:xsi="http......