- 参数绑定
- 当前端页面提交表单,表单数据对应后端实体类,控制层处理请求时,会将表单数据与实体类对象属性自动绑定(即转为对象)
# 前端:
姓名: <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;
}
});
}
};
}