接着前面的基础继续学习springboot,表单验证,就是检查前端提交的数据合理性,
比如电话号码够不够长,邮箱格式是否正确~我们来看看springboot为我们提供了什么样的便利
首先我们看看我们之间的实体类ManInfo,我现在在里面添加了 @NotEmpty、@Min等注解,
message是不符合验证的提示信息。
@Entity
public class ManInfo {
@Id
@GeneratedValue
private Integer id;
private Integer age;
private String nickname;
public ManInfo() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@NotEmpty(message="年龄不能为空")
@Min(value = 18, message = "未成年禁止入内!")
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
}
然后编写Controller类:使用@Valid注解验证数据,BindingResult是获取验证结果的。代码如下
@RestController
public class ManInfoController {
@Autowired
ManInfoRepository manInfoRepository;
@Autowired
ManInfoService manInfoService;
/**
* 添加一个人
* @param manInfo
* @return
*/
@PostMapping(value = "/addMan2")
ManInfo addMan2(@Valid ManInfo manInfo, BindingResult bindingResult){
if(bindingResult.hasErrors()){
/* for (ObjectError error : list) {
System.out.println(error.getDefaultMessage());
} */
System.out.println(bindingResult.getFieldError().getDefaultMessage());
return null;
}
return manInfoRepository.save(manInfo);
}
}
一个简单的表单验证就完成了
下面是表单验证的主要注解
@null 验证对象是否为空
@notnull 验证对象是否为非空
@asserttrue 验证 boolean 对象是否为 true
@assertfalse
验证 boolean 对象是否为 false
@min 验证 number 和 string 对象是否大等于指定的值
@max 验证 number 和 string 对象是否小等于指定的值
@decimalmin 验证 number 和 string 对象是否大等于指定的值,小数存在精度
@decimalmax 验证 number 和 string 对象是否小等于指定的值,小数存在精度
@size 验证对象(array,collection,map,string)长度是否在给定的范围之内
@digits 验证 number 和 string 的构成是否合法
@past 验证 date 和 calendar 对象是否在当前时间之前
@future 验证 date 和 calendar 对象是否在当前时间之后
@pattern 验证 string 对象是否符合正则表达式的规则
@Email 验证邮箱
网友评论