1、@Configuration 注解,定义一个文件配置类 MyConfig。
package com.wzy.springbootweb01.boot;@Configuration/*(proxyBeanMethods = false)*/public class MyConfig {@Beanpublic WebMvcConfigurer webMvcConfigurer(){//增强功能return new WebMvcConfigurer() {//使用自定义value赋值格式@Overridepublic void addFormatters(FormatterRegistry registry) {registry.addConverter(new Converter<String,Pet>() {@Overridepublic Pet convert(String s) {if (!StringUtils.isEmpty(s)){ //当字符串不为nullPet pet = new Pet(); //创建Pet对象。String[] split = s.split(","); //把数据从 , 号处分开得pet.setName(split[0]); //把索引0的元素保存为Pet的namepet.setAge(Integer.parseInt(split[1]));//把索引1的元素保存为Pet的agereturn 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、结果:
