1、@Configuration 注解,定义一个文件配置类 MyConfig。

    1. package com.wzy.springbootweb01.boot;
    2. @Configuration/*(proxyBeanMethods = false)*/
    3. public class MyConfig {
    4. @Bean
    5. public WebMvcConfigurer webMvcConfigurer(){//增强功能
    6. return new WebMvcConfigurer() {
    7. //使用自定义value赋值格式
    8. @Override
    9. public void addFormatters(FormatterRegistry registry) {
    10. registry.addConverter(new Converter<String,Pet>() {
    11. @Override
    12. public Pet convert(String s) {
    13. if (!StringUtils.isEmpty(s)){ //当字符串不为null
    14. Pet pet = new Pet(); //创建Pet对象。
    15. String[] split = s.split(","); //把数据从 , 号处分开得
    16. pet.setName(split[0]); //把索引0的元素保存为Pet的name
    17. pet.setAge(Integer.parseInt(split[1]));//把索引1的元素保存为Pet的age
    18. return pet;
    19. }
    20. return null;
    21. }
    22. });
    23. }
    24. };
    25. }
    26. }


    2、宠物姓名,年龄:
    value格式改为 value=”狗子,2” 以逗号“,”分开。

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Title</title>
    6. </head>
    7. <body>
    8. <form action="saveuser" method="POST" >
    9. 姓名:<input type="text" name="userName" value="张三"/><br/>
    10. 年龄:<input type="text" name="age" value="18"/><br/>
    11. 生日:<input type="text" name="birthday" value="2020/4/16"/><br/>
    12. 宠物姓名,年龄:<input type="text" name="pet" value="狗子,2"/><br/>
    13. <input type="submit" value="提交并保存">
    14. </form><br/>
    15. </body>
    16. </html>

    3、创建Bean类:Person、Pet。Pet作为Person的成员变量。

    1. @Data //提供getter、setter方法
    2. public class Person {
    3. private String userName;
    4. private Integer age;
    5. private Date birthday;
    6. private Pet pet;
    7. }
    8. @Data//提供getter、setter方法
    9. public class Pet {
    10. private String name;
    11. private Integer age;
    12. }

    4、@RestController 创建处理器对象类 MyControler10,@RequestMapping 创建处理方法。

    1. package com.wzy.springbootweb01.controller;
    2. @RestController//创建处理器对象,并把处理器对象中,处理器方法处理的结果输出到浏览器。
    3. public class MyConyroller10 {
    4. @RequestMapping(value = "saveuser",method = RequestMethod.POST)//创建处理器方法,定义POST请求。
    5. public Person getPerson(Person person){ //方法被访问时,把提交的数据自动封装进Person。
    6. return person;
    7. }
    8. }

    5、结果:
    image.png