展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

参数绑定和自定义参数绑定

  • 参数绑定
  • 当前端页面提交表单,表单数据对应后端实体类,控制层处理请求时,会将表单数据与实体类对象属性自动绑定(即转为对象)
# 前端:
姓名: <input name="userName"/> <br/>
年龄: <input name="age"/> <br/>

# 实体类:
@Data
public class Person {
    private String userName;
    private Integer age;
}

# 控制层:
@PostMapping("/seveuser")
Public Person seveuser(Person person){
return person;
}
  • 自定义参数绑定
# 当前端页面是如下,将两个属性写在作为字符串一起提交,后端无法解析;那么我们可以自定义转换器进行解析
# 前端:
宠物:<input name="pet" value="阿猫,3"/>

# 实体类:
@Data
public class Pet {
    private String name;
    private Integer age;
}

# 配置类中:WebMvcConfigurer方法中可定制所有SpringMVC的功能;
# 这里我们重写addFormatters方法,用于添加格式(将前端发送的字符串中逗号前解析为name,逗号后解析为age)
    @Bean
    public WebMvcConfigurer webMvcConfigurer(){
        return new WebMvcConfigurer() {

            @Override
            public void addFormatters(FormatterRegistry registry) {
                registry.addConverter(new Converter<String, Pet>() {   # 方法添加一个转换器,接收的参数为 新建一个转换器,<String, Pet>表示将字符串转为pet对象

                    @Override
                    public Pet convert(String source) {   # source表示接收的String字符串
                        if(!StringUtils.isEmpty(source)){
                            Pet pet = new Pet();
                            String[] split = source.split(",");
                            pet.setName(split[0]);
                            pet.setAge(Integer.parseInt(split[1]));
                            return pet;
                        }
                        return null;
                    }

                });
            }

        };
    }
posted @ 2022-07-30 08:40  DogLeftover  阅读(16)  评论(0编辑  收藏  举报