1. 程式人生 > >Springboot自帶的表單驗證操作

Springboot自帶的表單驗證操作

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自帶的表單驗證操作