springboot2 mvc 数据绑定总结
所属分类 spring
浏览量 1364
key-value json
web参数名 和 方法参数名 不一致 使用 @RequestParam
注意 基本类型 和 包装类型的区别
int vs Integer
推荐使用 包装类型 ,避免空指针
数组参数 可自动绑定到 String[], 绑定 到 List< String> 需要使用 @RequestParam
绑定到数据对象 , 需要 set 方法
@Valid 注解开启校验
public Map< String,Object> getUserAndValid(@Valid User user,BindingResult bindingResult)
@RequestBody 使用 json格式 ,请求体为 json 格式
public User getUserFromJson(@RequestBody User user)
@RequestMapping("/getInteger1")
public Integer getInteger1(@RequestParam(required=false) Integer id) {
return id;
}
@RequestMapping("/getInteger2")
public Integer getInteger2(@RequestParam("id_") Integer id) {
return id;
}
@RequestMapping("/getInteger3")
public Integer getInteger3(@RequestParam(name="id_",defaultValue = "999") Integer id) {
return id;
}
@RequestMapping("/getNameArray")
public String[] getNameArray(String[]name){
return name;
}
@RequestMapping("/getNameList")
public List< String > getNameList(@RequestParam("name") List< String > name){
// ?name=cat&name=dog
// 不传参数 报错
// org.springframework.web.bind.MissingServletRequestParameterException: Required List parameter 'name' is not present
return name;
}
list 需要使用 @RequestParam
@RequestMapping("/getUser")
public User getUser(User user){
// ?id=1&name=cat&dept.id=2&dept.name=dept1
// set 方法必须
return user;
}
数据对象绑定 需要 set 方法 !!!
@RequestMapping("/getUserAndValid")
public Map< String,Object> getUserAndValid(@Valid User user,BindingResult bindingResult){
Map< String,Object> map = new HashMap< String,Object>();
map.put("user", user);
if(bindingResult!=null && bindingResult.hasErrors()){
map.put("errors", bindingResult.getAllErrors());
}
// dept 校验没生效 !!!
return map;
}
@Valid 增加校验
public class User{
@NotNull(message = "id为空")
@Min(value = 0, message = "ID 小于 0")
@Max(value = 1000, message = "id 大于 1000")
private Long id;
@NotBlank(message = "name为空")
@Size(min=1,max=10,message="name 长度错误 ")
private String name;
@RequestMapping("/getUserFromJson")
public User getUserFromJson(@RequestBody User user){
// post
// 请求头设置 Content-Type application/json
// 请求体设置 raw 格式
// {"id":1,"name":"cat","dept":{"id":2,"name":"dept1"}}
return user;
}
springboot2 @RequestBody注解使用说明
完整代码
https://gitee.com/dyyx/springboothello/blob/master/src/main/java/demo/controller/DataBindController.java
上一篇
下一篇
詹姆斯写给伦纳德的一封信
伦纳德给詹姆斯的回信
大数据治理要点
运维知识体系
架构知识体系
CFA和CPA