在创建Springboot项目中,我们使用了表单验证操作,这一操作将极大地简化我们编程的开发
1.接收数据,以及验证
1@PostMapping("/save") 2 public ModelAndView save(@Valid ProductForm productForm, 3 BindingResult bindingResult, 4 Map<String, Object> map) { 5 //1.表单验证 6 if (bindingResult.hasErrors()) { 7 map.put("msg", bindingResult.getFieldError().getDefaultMessage()); 8 map.put("url", "sell/seller/product/index"); 9 return new ModelAndView("common/error", map); 10 } 11}
2.实体类注解
1package com.xiong.sell.form; 2 3import lombok.Data; 4 5import javax.validation.constraints.NotEmpty; 6import java.math.BigDecimal; 7 8/** 9 * @author Xiong YuSong 10 * 2019/1/27 12:46 11 */ 12@Data 13public class ProductForm { 14 private String productId; 15 16 /** 名字. */ 17 @NotEmpty(message = "名字必填") 18 private String productName; 19 20 /** 单价. */ 21 private BigDecimal productPrice; 22 23 /** 库存. */ 24 private Integer productStock; 25 26 /** 描述. */ 27 @NotEmpty(message = "描述必填") 28 private String productDescription; 29 30 /** 小图. */ 31 @NotEmpty(message = "图片必填") 32 private String productIcon; 33 34 /** 类目编号. */ 35 private Integer categoryType; 36}
3.下面是表单验证的所有操作标签
1@Null 2 3限制只能为null 4 5@NotNull 6 7限制必须不为null 8 9@AssertFalse 10 11限制必须为false 12 13@AssertTrue 14 15限制必须为true 16 17@DecimalMax(value) 18 19限制必须为一个不大于指定值的数字 20 21@DecimalMin(value) 22 23限制必须为一个不小于指定值的数字 24 25@Digits(integer,fraction) 26 27限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction 28 29@Future 30 31限制必须是一个将来的日期 32 33@Max(value) 34 35限制必须为一个不大于指定值的数字 36 37@Min(value) 38 39限制必须为一个不小于指定值的数字 40 41@Past 42 43限制必须是一个过去的日期 44 45@Pattern(value) 46 47限制必须符合指定的正则表达式 48 49@Size(max,min) 50 51限制字符长度必须在min到max之间 52 53@Past 54 55验证注解的元素值(日期类型)比当前时间早 56 57@NotEmpty 58 59验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0) 60 61@NotBlank 62 63验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格 64 65@Email 66 67验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式