Springboot自帶的表單驗證操作
阿新 • • 發佈:2019-01-27
flag ltm not val rod pty package col turn
在創建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格式
Springboot自帶的表單驗證操作