目录
一、JSR303
服务端 参数 校验
在pomxml.文件中添加以下jar包依赖
<!-- 做服务端参数校验 JSR303 的jar包依赖-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.7.Final</version>
</dependency>
Clazz.java中添加注解
@NotNull 针对的是基本数据类型
@NotEmpty 作用于集合
@NotBlank 作用于字符串
package com.maomao.ssm.model;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
public class Clazz {
@NotNull(message = "cid不能为空")
//protected会被子类继承
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;
}
}
在ClazzController.java中添加校验方法
/**
* @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";
}
使用debugger测试方法是否有效
出现了cid不能为空说明方法有效
完善方法在页面上显示提示语
ClazzController.java
@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:cid不能为空
System.out.println(fieldError.getField()+":"+fieldError.getDefaultMessage());
// msg.put(cid,cid不能为空);
msg.put(field