目录
一、JSR303
服务端验证
1.2导入pom依赖
<!--做服务端参数校验 JSR303的jar包依赖--> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>6.0.7.Final</version> </dependency>
1.3后端
Clazz实体类:
在我们的实体类进行约束:
@NotNull :作用于基本数据类型
@NotEmpty 作用于集合
@NotBlank 作用于字符串
package com.zwc.ssm.model;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @NotNUll:基本数据类型
* @NotEmpty 作用于集合
* @NotBlank 作用于字符串
*/
public class Clazz {
@NotNull
protected Integer cid;
@NotNull(message = "班级名称不能为空")
protected String cname;
@NotBlank
protected String cteacher;
@NotBlank
protected String pic;
public Clazz(Integer cid, String cname, String cteacher, String pic) {
this.cid = cid;
this.cname = cname;
this.cteacher = cteacher;
this.pic = pic;
}
public Clazz() {
super();
}
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
public String getCteacher() {
return cteacher;
}
public void setCteacher(String cteacher) {
this.cteacher = cteacher;
}
public String getPic() {
return pic;
}
public void setPic(String pic) {
this.pic = pic;
}
}
如:在我们的增加界面没有做任何的校验,都可以到后台中
在方法处打断点,当我们点击提交后,调到断点,可以看到直接调到后台
如:当没有填写cid,在文本框后面要求显示‘cid不能为空’
在实体类写入约束
注意想要NotNull实现,我们还需在ClazzController加入@Volid注解
/**
* @Valid:是与实体类中 的服务端校验 注解配合使用的
* BindingResult 存放了所有违背 校验的错误信息
* @param clazz
* @param bindingResult
* @return
*/
@RequestMapping("/valiAdd")
public String valiAdd(@Valid Clazz clazz, BindingResult bindingResult){
if(bindingResult.hasErrors()){
// 违背规则
List<FieldError> fieldErrors = bindingResult.getFieldErrors();
for (FieldError fieldError:fieldErrors){
// cid:cid不能为空
System.out.println(fieldError.getField() + ":" + fieldError.getDefaultMessage());
}
}else {
this.clazzBiz.insertSelective(clazz);
}
return "redirect:/Clz/list";
}
运行看错误信息是否打印:
在控制台可以看到错误信息已经打印出来
现在将我们的VoliAdd方法完善
@RequestMapping("/valiAdd")
public String valiAdd(@Valid Clazz clazz, BindingResult bindingResult,HttpServletRequest request){
if(bindingResult.hasErrors()){
Map msg = new HashMap();
// 违背规则
List<FieldError> fieldErr