1.自定义转换器
1.1基本介绍
- SpringBoot 在响应客户端请求时,将提交的数据封装成对象时,使用了内置的转换器,也就是自动帮我们封装对象。springboot 自带了124个转换器,可以实现大部分的类型间的转换。
- SpringBoot 也支持自定义转换器。但当前台发送请求传递的参数使用内置的转换器不能转换时,这时就需要写一个自定义的数据类型转换器,我们只需要实现 Converter 接口的 convert 方法即可。
1.2应用案例
演示自定义转换器的使用。
(1)save.html
<!DOCTYPE html> |
|
<html lang="en"> |
|
<head> |
|
<meta charset="UTF-8"> |
|
<title>save</title> |
|
</head> |
|
<body> |
|
<form action="/saveMonster" method="post"> |
|
编号:<input name="id" value="10001"/><br/> |
|
姓名:<input name="name" value="齐天大圣"/><br/> |
|
年龄:<input name="age" value="888"/><br/> |
|
婚否:<input name="isMarried" value="false"/><br/> |
|
生日:<input name="birth" value="1456/12/12"/><br/> |
|
<!--使用自定义转换器关联car,value字符串整体添加,使用逗号间隔--> |
|
坐骑:<input name="car" value="避水金晶兽,666.6"/><br/> |
|
<input type="submit" value="保存"/> |
|
</form> |
|
</body> |
|
</html> |
(2)自定义转换器(String-->Car)
package com.li.config; |
|
import com.li.bean.Car; |
|
import org.springframework.context.annotation.Configuration; |
|
import org.springframework.core.convert.converter.Converter; |
|
import org.springframework.format.FormatterRegistry; |
|
import org.springframework.util.ObjectUtils; |
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; |
|
/** |
|
* @author 李 |
|
* @version 1.0 |
|
* (proxyBeanMethods = false) |
|
* 1.表示启用Lite模式,保证修饰的配置类中,每个@Bean方法被调用多少次返回的组件都是新创建的, |
|
* 是多例对象,是非代理方式。 |
|
* 2.proxyBeanMethods 在调用 @Bean 方法时才生效,因此需要先获取BeanConfig 组件,再调用方法 |
|
*/ |
|
@Configuration(proxyBeanMethods = false)//设置为设置类 |
|
public class WebConfig {
|
|
//注入bean-WebMvcConfigurer |
|
@Bean |
|
public WebMvcConfigurer webMvcConfigurer() {
|
|