亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

双城市| 浏阳市| 吉安市| 靖安县| 建瓯市| 柳林县| 横山县| 慈利县| 页游| 浦东新区| 扎兰屯市| 资兴市| 安宁市| 新闻| 杭州市| 平原县| 伊川县| 密山市| 湘潭市| 利川市| 霍城县| 张家口市| 会昌县| 桓台县| 繁昌县| 红安县| 安远县| 廊坊市| 清涧县| 昆山市| 庄浪县| 清新县| 宝清县| 旬邑县| 临泉县| 凤山县| 台东市| 阳高县| 嘉定区| 马山县| 潜江市|