在创建Springboot项目中,我们使用了表单验证操作,这一操作将极大地简化我们编程的开发
1.接收数据,以及验证
@PostMapping("/save")
public ModelAndView save(@Valid ProductForm productForm,
BindingResult bindingResult,
Map<String, Object> map) {
//1.表单验证
if (bindingResult.hasErrors()) {
map.put("msg", bindingResult.getFieldError().getDefaultMessage());
map.put("url", "sell/seller/product/index");
return new ModelAndView("common/error", map);
}
}
2.实体类注解
package com.xiong.sell.form;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import java.math.BigDecimal;
/**
* @author Xiong YuSong
* 2019/1/27 12:46
*/
@Data
public class ProductForm {
private String productId;
/** 名字. */
@NotEmpty(message = "名字必填")
private String productName;
/** 单价. */
private BigDecimal productPrice;
/** 库存. */
private Integer productStock;
/** 描述. */
@NotEmpty(message = "描述必填")
private String productDescription;
/** 小图. */
@NotEmpty(message = "图片必填")
private String productIcon;
/** 类目编号. */
private Integer categoryType;
}
3.下面是表单验证的所有操作标签
@Null
限制只能为null
@NotNull
限制必须不为null
@AssertFalse
限制必须为false
@AssertTrue
限制必须为true
@DecimalMax(value)
限制必须为一个不大于指定值的数字
@DecimalMin(value)
限制必须为一个不小于指定值的数字
@Digits(integer,fraction)
限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction
@Future
限制必须是一个将来的日期
@Max(value)
限制必须为一个不大于指定值的数字
@Min(value)
限制必须为一个不小于指定值的数字
@Past
限制必须是一个过去的日期
@Pattern(value)
限制必须符合指定的正则表达式
@Size(max,min)
限制字符长度必须在min到max之间
@Past
验证注解的元素值(日期类型)比当前时间早
@NotEmpty
验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
@NotBlank
验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格
@Email
验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式