Springboot--表單驗證@Valid


一、簡介

  springboot給我們提供了強大的表單驗證功能,為我們省去了寫驗證的麻煩。

  以下使用一個簡單的注冊頁面來進行演示;

 

二、實例

  1、注冊頁

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/Regist">
    用戶名:<input name="username" type="text"/><br>
    密碼:<input name="password" type="password"/><br>
    年齡:<input name="age" type="text"/>
    <button type="submit">注冊</button>
</form>
</body>
</html>

  2、新建一個model類,用於驗證用戶填寫的注冊信息;

public class ReegistModel {
    @Size(min=5,message = "用戶名長度不能小於5")
    @NotNull(message = "不能為空")
    private String username;
    @Size(min=5,max=16,message = "密碼長度在5-16之間")
    @NotNull(message = "不能為空")
    private String password;
    @Min(value=13,message = "年齡最小為13")
    @Max(value=80,message = "年齡最大為80")
    @NotNull(message = "不能為空")
    private int age;

    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

  3、新建一個controller類,接收用戶注冊參數前加上@Valid注解

@RequestMapping("Regist")
public String regist(@Valid ReegistModel regist, BindingResult bindingResult){
if(bindingResult.hasErrors()){
return bindingResult.getFieldError().getDefaultMessage();
}
return "注冊成功";
}

  4、演示結果

   (1)、用戶名不符合要求

  

   (2)、密碼不符合要求

  

   (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格式

 

PS:因作者能力有限,如有誤還請諒解;


免責聲明!

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



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