前言

在SpringMVC中为我们提供了许多内置的类型转换器,当我们在HTML表单中发起一个请求时,Spring会根据表单项中name属性的值映射到POJO的属性名,调用相对性属性的set方法帮我们把表单中的多个属性转化为一个POJO对象,这样我们在Controller方法中就可以直接使用POJO作为参数得到提交的数据。但有时候会存在其他情况,比如你把一个POJO对象的多个属性都写在一个input标签中,在这种情况下Spring无法自动帮我转化为POJO对象,这种情况下我们可以通过设置自定义类型转化器,按照我们的规则去转化成POJO对象。

代码

首先,写一个类并实现Converter接口,在这个接口中有一个方法T convert(S var1),在该方法中设置类型转化规则。其中,S是传入的类型,T放回的类型。 public interface Converter { @Nullable T convert(S var1); }

Dome如下

public class BookConverter implements Converter {

@Override

public Book convert(String s) {

String[] split = s.split("-");

Book book = null;

if (split.length==2){

book = new Book();

book.setBname(split[0]);

book.setPrice(new BigDecimal(split[1]));

}

return book;

}

}

Book类为

public class Book {

private String bname;

private BigDecimal price;

//省略get和set方法

然后在SpringMVC的配置文件中配置ConversionServiceFactoryBean

//这里可以有多个自定义的类型转化器

在input标签中输入

JAVA从入门到入土-9999

Spring会根据我们自定义的规则转化为所需要的类型,在Controller方法中便可以直接使用对应的类型作为参数接收传给后端的参数

public String testConverter(@RequestParam("book") Book book){

如果在项目中使用了@NumberFormat或@DateTimeFormat注解,则需要使用FormattingConversionServiceFactoryBean对象工厂,在FormattingConversionServiceFactoryBean中已经注册了NumberFormatAnnotationFormatterFactroy和JodaDateTimeFormatAnnotationFormatterFactroy,支持使用@NumberFormat、@DateTimeFormat对接对数字类型和日期类型的格式化

java converter转换器_在SpringMVC中设置自定义类型转换器Converter相关推荐

  1. springmvc二十一:自定义类型转换器

    ConversionService:是一个接口; 它里面有一个Converter(转换器)进行工作 ①实现一个Converter接口,写一个自定义的类型转换器 ②Converter是Conversio ...

  2. springboot中mongodb自定义类型转换器

    文章目录 1 场景 1.1 BigDecimal写入mongo 1.2 人工转换 1.3 自定义转换器 2 版本 3 步骤 3.1 定义转换器 3.2 配置mongoDb工厂类 3.3 加载自定义转换 ...

  3. SpringMVC(7)——类型转换器Converter

    目录 概述 内置的类型转换器 自定义类型转换器 创建实体类 创建控制器类 创建自定义类型转换器类 注册类型转换器 创建JSP视图文件 运行效果 概述 SpringMVC框架的Converter< ...

  4. java自定义类型转换器

    springMVC中有一些内置的数据类型转换器(内置转换器全都在: org.springframework.core.convert.support 包 下),可以从前端请求到服务器的自动转换. 部分 ...

  5. SpringMVC全局乱码过滤器、注解@RequestParam、自定义类型转换器

    目录 配置全局乱码过滤器 参数绑定注解@RequestParam 注解@RequestParam的参数使用说明 获得Restful风格的参数 自定义类型转换器 自定义转换器的开发步骤: 获得Servl ...

  6. SpringMVC的请求参数,类型转换器(日期格式),请求映射

    SpringMVC的请求参数,类型转换器(日期格式),请求映射 请求参数 springMVC将传递的参数封装到处理的方法形参中,达到快速访问参数的目的 普通参数类型 参数名与处理器方法形参名保持一致 ...

  7. SpringMVC框架 |自定义类型转换器与日期格式化

    文章目录 一.Spring支持的转换器 二.自定义转换器的步骤 第一步:实现Converter接口 第二步:将Converter配置到ConverterService组件中 第三步:将组件声明在ann ...

  8. SpringMVC框架----SpringMVC的自定义类型转换器

    上一段我们介绍了请求参数的绑定 SpringMVC请求参数的绑定 在请求参数绑定的时候,有时候会遇到一些问题,如自定义类型转换器异常 1.自定义类型转换器演示异常 现在有一个页面,想给服务器提交数据, ...

  9. Spring MVC自定义类型转换器Converter、参数解析器HandlerMethodArgumentResolver

    文章目录 一.前言 二.类型转换器Converter 1.自定义类型转换器 三.参数解析器 1.自定义分页参数解析器 2.自定义注解参数解析器 一.前言 Spring MVC源码分析相关文章已出: S ...

最新文章

  1. 【HNOI2007】紧急疏散
  2. 异常处理——MysqlCan't connect to local MySQL server through socket '/v ar/lib/mysql/mysql.sock'
  3. 使用Boost_MPI进行并行编程
  4. 关于Dalvik虚拟机你需要知道的15个问题
  5. Material delta download的deletion处理原理
  6. 主成分分析法_探索主成分分析法
  7. 美团面试题 | JVM 堆内存溢出后,其他线程是否可继续工作?
  8. 如何应对互联网界的奇葩面试题!
  9. 我们的高中教育造就了什么?
  10. You specified a pre-MSA CPU in your CFLAGS
  11. gamit添加未知天线
  12. POJ刷题顺序(转载)
  13. 链家网爬取深圳租房信息并存入MySQL
  14. 等保测评中web应用防火墙怎么选择?
  15. 数据预处理 - 类型转换(离散型)
  16. python:输入一个整数正序各个输出,并判断输出位数
  17. 软件工程网络15个人阅读作业2(201521123042 姚佳希)
  18. android bp文件_Android编译系统中的Android.bp【转】
  19. igxe本地机器人怎么用_IGXE自售机器人第四批申请开启
  20. java mysql 生僻字 乱码_mysql 生僻字乱码

热门文章

  1. 洛谷入门题P1046、P1047、P1427、P1428、P2141、P1567题解(Java语言描述)
  2. 【Java】浅析Math类
  3. 爱尔兰向欧盟上诉:没特别给苹果税收优惠 欧盟手伸的太长
  4. SpringHttpInvoker解析2-服务端实现
  5. Auto login to your computer
  6. 安装部署gitlab ci
  7. linux之shell脚本管理(一)
  8. 如何删除Mac系统里面的所有 DS_Store 文件呢?
  9. C语言这么难,为何大家都如飞蛾扑火般学习?现在带你揭秘
  10. Apache出现AH00558错误解决办法