91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springboot表單提交之validator校驗的實例分析

發布時間:2021-05-30 18:01:18 來源:億速云 閱讀:173 作者:小新 欄目:開發技術

小編給大家分享一下springboot表單提交之validator校驗的實例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

前言

表單提交是最常見的數據提交方式,我們經常會填寫表單信息,比如用戶名,身份證,手機號等等,因此就會產生身份證是否合法,用戶名是否為空,雖然我們可以直接在前臺使用js就進行格式的校驗,但如果使用postman工具直接發請求呢?使用我們后端也需要進行對數據的校驗,這樣極大的確保數據的安全性和合法性。

1.新建一個Springboot項目,并且添加web依賴。下面是本項目的全部依賴

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
        <dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>6.1.5.Final</version>
        </dependency>


        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

springboot表單提交之validator校驗的實例分析

2.為了方便演示,我引入了Lombok,然后我們新建一個User類來模擬用戶注冊時提交的表單信息。

這里涉及到幾個注解:

@NotEmpty(message=“用戶名不能為空”)
@Length(min=6,max = 12,message=“用戶名長度必須位于6到12之間”)
@Email(message=“請輸入正確的郵箱”)
@Pattern(regexp = “正則表達式”, message = “身份證格式錯誤”)

User.java的代碼:

package com.ctvit.validatordemo.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Pattern;
import java.io.Serializable;

/**
 * 用戶名,密碼,郵箱,身份證
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User implements Serializable {
    @NotEmpty(message="用戶名不能為空")
    @Length(min=6,max = 12,message="用戶名長度必須位于6到12之間")
    private String userName;


    @NotEmpty(message="密碼不能為空")
    @Length(min=6,message="密碼長度不能小于6位")
    private String passWord;

    @Email(message="請輸入正確的郵箱")
    private String email;

    @Pattern(regexp = "^(\\d{18,18}|\\d{15,15}|(\\d{17,17}[x|X]))$", message = "身份證格式錯誤")
    private String idCard;

}

3.然后書寫一個簡單的控制器來進行模擬訪問:

package com.ctvit.validatordemo.controller;

import com.ctvit.validatordemo.pojo.User;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;
import java.util.List;

@RestController
public class UserController {

    @PostMapping("/Register")
    public String Register(@Valid User user, BindingResult bindingResult){//一個BindingResult對應一個@Valid注解的參數,用來表示校驗消息
        StringBuffer stringBuffer = new StringBuffer();//使用StringBuffer拼接錯誤信息,比如用戶名為空,長度等
        if(bindingResult.hasErrors()){//判讀是否攜帶錯誤信息
            List<ObjectError> list =bindingResult.getAllErrors();//獲取所有錯誤信息對象
            for (ObjectError objectError:list) {//遍歷對象,獲取錯誤的具體信息
                //將所有信息進行拼接
                stringBuffer.append(objectError.getDefaultMessage());
                stringBuffer.append("---");
            }
        }
        return stringBuffer!=null?stringBuffer.toString():"";//將錯誤信息返回
    }
}

4.這里涉及到一個接口:BindingResult。

方法名作用
hasErrors()判斷當前參數是否符合
getAllErrors()獲取錯誤信息對象
getDefaultMessage()獲取錯誤信息

springboot表單提交之validator校驗的實例分析
springboot表單提交之validator校驗的實例分析

輸入一半正確的,一般錯誤的:

springboot表單提交之validator校驗的實例分析

都正確的數據:

springboot表單提交之validator校驗的實例分析

以上是“springboot表單提交之validator校驗的實例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁城县| 鹤壁市| 铜山县| 天祝| 浙江省| 双峰县| 偃师市| 宜春市| 句容市| 开原市| 芦山县| 东明县| 哈尔滨市| 巴东县| 兴隆县| 华坪县| 仙游县| 秦安县| 长垣县| 墨脱县| 闵行区| 金堂县| 霍城县| 铜陵市| 桃源县| 临颍县| 大邑县| 珠海市| 堆龙德庆县| 乐山市| 若尔盖县| 灵川县| 古田县| 白城市| 湖北省| 株洲县| 长汀县| 永和县| 香格里拉县| 墨脱县| 汤原县|