SpringBoot項目中,表單的驗證操作


在創建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格式

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM