目录
一,JSR303
服务端验证
1.导入pom依赖
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.7.Final</version>
</dependency>
2.后端
在实体类中加上注解
解析:
@NotNull :作用于基本数据类型
@NotEmpty 作用于集合
@NotBlank 作用于字符串
package com.dengxiyan.ssm.model;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
public class Clazz {
@NotNull(message = "cid不能为空")
protected Integer cid;
@NotBlank(message = "班级名称不能为空")
protected String cname;
@NotBlank(message = "教员名称不能为空")
protected String cteacher;
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;
}
}
控制层
解析:
@valid 是与实体类中的服务端校验,注解配合使用的
bindingresult 存放校验的错误信息
@param clazz
@param bindingResult
@return
//给数据添加服务端效验
@RequestMapping("/valiadd")
public String valiadd(@Valid Clazz clazz, BindingResult bindingResult,HttpServletRequest request){
if(bindingResult.hasErrors()){
Map msg = new HashMap();
//违背规则
List<FieldError> fieldErrors = bindingResult.getFieldErrors();
for (FieldError fieldError : fieldErrors) {
//cid 不能为空
System.out.println(fieldError.getField() + ":" + fieldError.getDefaultMessage());
// msg.put(cid,cid不能为空);
msg.put(fieldError.getField(),fieldError.getDefaultMessage());
}
request.setAttribute("msg",msg);
//如果出现了错误,应该将提示语显示在表单提交元素后方
return "clzEdit";
}else{
this.clazzBiz.insertSelective(clazz);
}
return "redirect:/clz/list";
}
package com.dengxiyan.ssm.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @author dxy
* @site www.javadxy.com
* @company ds公司
* @create 2022-08-19 18:15
*/
@Controller
public class HelloController {
@RequestM