1、@Configuration
注解,定义一个文件配置类 MyConfig。
package com.wzy.springbootweb01.boot;
@Configuration/*(proxyBeanMethods = false)*/
public class MyConfig {
@Bean
public WebMvcConfigurer webMvcConfigurer(){//增强功能
return new WebMvcConfigurer() {
//使用自定义value赋值格式
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new Converter<String,Pet>() {
@Override
public Pet convert(String s) {
if (!StringUtils.isEmpty(s)){ //当字符串不为null
Pet pet = new Pet(); //创建Pet对象。
String[] split = s.split(","); //把数据从 , 号处分开得
pet.setName(split[0]); //把索引0的元素保存为Pet的name
pet.setAge(Integer.parseInt(split[1]));//把索引1的元素保存为Pet的age
return pet;
}
return null;
}
});
}
};
}
}
2、宠物姓名,年龄:
value格式改为 value=”狗子,2” 以逗号“,”分开。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="saveuser" method="POST" >
姓名:<input type="text" name="userName" value="张三"/><br/>
年龄:<input type="text" name="age" value="18"/><br/>
生日:<input type="text" name="birthday" value="2020/4/16"/><br/>
宠物姓名,年龄:<input type="text" name="pet" value="狗子,2"/><br/>
<input type="submit" value="提交并保存">
</form><br/>
</body>
</html>
3、创建Bean类:Person、Pet。Pet作为Person的成员变量。
@Data //提供getter、setter方法
public class Person {
private String userName;
private Integer age;
private Date birthday;
private Pet pet;
}
@Data//提供getter、setter方法
public class Pet {
private String name;
private Integer age;
}
4、@RestController 创建处理器对象类 MyControler10,@RequestMapping 创建处理方法。
package com.wzy.springbootweb01.controller;
@RestController//创建处理器对象,并把处理器对象中,处理器方法处理的结果输出到浏览器。
public class MyConyroller10 {
@RequestMapping(value = "saveuser",method = RequestMethod.POST)//创建处理器方法,定义POST请求。
public Person getPerson(Person person){ //方法被访问时,把提交的数据自动封装进Person。
return person;
}
}
5、结果: