java converter转换器_在SpringMVC中设置自定义类型转换器Converter
前言
在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相关推荐
- springmvc二十一:自定义类型转换器
ConversionService:是一个接口; 它里面有一个Converter(转换器)进行工作 ①实现一个Converter接口,写一个自定义的类型转换器 ②Converter是Conversio ...
- springboot中mongodb自定义类型转换器
文章目录 1 场景 1.1 BigDecimal写入mongo 1.2 人工转换 1.3 自定义转换器 2 版本 3 步骤 3.1 定义转换器 3.2 配置mongoDb工厂类 3.3 加载自定义转换 ...
- SpringMVC(7)——类型转换器Converter
目录 概述 内置的类型转换器 自定义类型转换器 创建实体类 创建控制器类 创建自定义类型转换器类 注册类型转换器 创建JSP视图文件 运行效果 概述 SpringMVC框架的Converter< ...
- java自定义类型转换器
springMVC中有一些内置的数据类型转换器(内置转换器全都在: org.springframework.core.convert.support 包 下),可以从前端请求到服务器的自动转换. 部分 ...
- SpringMVC全局乱码过滤器、注解@RequestParam、自定义类型转换器
目录 配置全局乱码过滤器 参数绑定注解@RequestParam 注解@RequestParam的参数使用说明 获得Restful风格的参数 自定义类型转换器 自定义转换器的开发步骤: 获得Servl ...
- SpringMVC的请求参数,类型转换器(日期格式),请求映射
SpringMVC的请求参数,类型转换器(日期格式),请求映射 请求参数 springMVC将传递的参数封装到处理的方法形参中,达到快速访问参数的目的 普通参数类型 参数名与处理器方法形参名保持一致 ...
- SpringMVC框架 |自定义类型转换器与日期格式化
文章目录 一.Spring支持的转换器 二.自定义转换器的步骤 第一步:实现Converter接口 第二步:将Converter配置到ConverterService组件中 第三步:将组件声明在ann ...
- SpringMVC框架----SpringMVC的自定义类型转换器
上一段我们介绍了请求参数的绑定 SpringMVC请求参数的绑定 在请求参数绑定的时候,有时候会遇到一些问题,如自定义类型转换器异常 1.自定义类型转换器演示异常 现在有一个页面,想给服务器提交数据, ...
- Spring MVC自定义类型转换器Converter、参数解析器HandlerMethodArgumentResolver
文章目录 一.前言 二.类型转换器Converter 1.自定义类型转换器 三.参数解析器 1.自定义分页参数解析器 2.自定义注解参数解析器 一.前言 Spring MVC源码分析相关文章已出: S ...
最新文章
- 【HNOI2007】紧急疏散
- 异常处理——MysqlCan't connect to local MySQL server through socket '/v ar/lib/mysql/mysql.sock'
- 使用Boost_MPI进行并行编程
- 关于Dalvik虚拟机你需要知道的15个问题
- Material delta download的deletion处理原理
- 主成分分析法_探索主成分分析法
- 美团面试题 | JVM 堆内存溢出后,其他线程是否可继续工作?
- 如何应对互联网界的奇葩面试题!
- 我们的高中教育造就了什么?
- You specified a pre-MSA CPU in your CFLAGS
- gamit添加未知天线
- POJ刷题顺序(转载)
- 链家网爬取深圳租房信息并存入MySQL
- 等保测评中web应用防火墙怎么选择?
- 数据预处理 - 类型转换(离散型)
- python:输入一个整数正序各个输出,并判断输出位数
- 软件工程网络15个人阅读作业2(201521123042 姚佳希)
- android bp文件_Android编译系统中的Android.bp【转】
- igxe本地机器人怎么用_IGXE自售机器人第四批申请开启
- java mysql 生僻字 乱码_mysql 生僻字乱码