欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot表單提交之validator校驗(yàn)

 更新時(shí)間:2021年05月30日 10:58:06   作者:程序逸  
在前臺表單驗(yàn)證的時(shí)候,通常會(huì)校驗(yàn)一些數(shù)據(jù)的可行性,比如是否為空,長度,身份證,郵箱等等,這篇文章主要給大家介紹了關(guān)于springboot表單提交之validator校驗(yàn)的相關(guān)資料,需要的朋友可以參考下

前言

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

1.新建一個(gè)Springboot項(xiàng)目,并且添加web依賴。下面是本項(xiàng)目的全部依賴

<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>

在這里插入圖片描述

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

這里涉及到幾個(gè)注解:

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

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 = "身份證格式錯(cuò)誤")
    private String idCard;

}

3.然后書寫一個(gè)簡單的控制器來進(jìn)行模擬訪問:

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){//一個(gè)BindingResult對應(yīng)一個(gè)@Valid注解的參數(shù),用來表示校驗(yàn)消息
        StringBuffer stringBuffer = new StringBuffer();//使用StringBuffer拼接錯(cuò)誤信息,比如用戶名為空,長度等
        if(bindingResult.hasErrors()){//判讀是否攜帶錯(cuò)誤信息
            List<ObjectError> list =bindingResult.getAllErrors();//獲取所有錯(cuò)誤信息對象
            for (ObjectError objectError:list) {//遍歷對象,獲取錯(cuò)誤的具體信息
                //將所有信息進(jìn)行拼接
                stringBuffer.append(objectError.getDefaultMessage());
                stringBuffer.append("---");
            }
        }
        return stringBuffer!=null?stringBuffer.toString():"";//將錯(cuò)誤信息返回
    }
}

4.這里涉及到一個(gè)接口:BindingResult。

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

在這里插入圖片描述
在這里插入圖片描述

輸入一半正確的,一般錯(cuò)誤的:

在這里插入圖片描述

都正確的數(shù)據(jù):

在這里插入圖片描述

總結(jié)

到此這篇關(guān)于springboot表單提交之validator校驗(yàn)的文章就介紹到這了,更多相關(guān)springboot validator校驗(yàn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java將List轉(zhuǎn)換為String的幾種方式

    Java將List轉(zhuǎn)換為String的幾種方式

    我們大家在實(shí)際開發(fā)中經(jīng)常遇到List轉(zhuǎn)為String字符串的情況,下面這篇文章主要給大家介紹了關(guān)于Java將List轉(zhuǎn)換為String的幾種方式,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Spring Boot 中的Servlet簡單使用

    Spring Boot 中的Servlet簡單使用

    在spring boot中添加自己的Servlet有兩種方法,代碼注冊Servlet和注解自動(dòng)注冊(Filter和Listener也是如此)。這篇文章主要介紹了Spring Boot 中的Servlet簡單使用,需要的朋友可以參考下
    2017-04-04
  • Java線程編程中Thread類的基礎(chǔ)學(xué)習(xí)教程

    Java線程編程中Thread類的基礎(chǔ)學(xué)習(xí)教程

    這篇文章主要介紹了Java線程編程中Thread類的基礎(chǔ)學(xué)習(xí)教程,Thread類包含諸多操作線程的方法,非常重要,需要的朋友可以參考下
    2015-12-12
  • Java效率提升神器jOOR

    Java效率提升神器jOOR

    這篇文章主要介紹了Java效率提升神器jOOR,jOOR是一個(gè)第三方庫,通過鏈?zhǔn)紻SL接口,簡化了反射過程,更多相關(guān)內(nèi)容組要的朋友可以參考一下
    2022-07-07
  • Java中Scanner用法簡單示例

    Java中Scanner用法簡單示例

    這篇文章主要給大家介紹了關(guān)于Java中Scanner用法的相關(guān)資料,Scanner是Java中的一個(gè)類,用于讀取用戶的輸入,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • SpringMVC全局異常處理的三種方式

    SpringMVC全局異常處理的三種方式

    這篇文章主要介紹了SpringMVC全局異常處理的三種方式,幫助大家更好的理解和使用springmvc,感興趣的朋友可以了解下
    2021-01-01
  • 關(guān)于idea中ssm框架的編碼問題分析

    關(guān)于idea中ssm框架的編碼問題分析

    在實(shí)際開發(fā)中需要將操作系統(tǒng)編碼、文件編碼、頁面編碼以及tomcat服務(wù)器編碼保持一致,而tomcat在默認(rèn)情況下是使用UTF-8,這就使得其打印的日志文件出現(xiàn)中文亂碼,因此在一般情況下,只需要將tomcat服務(wù)器的編碼改為GBK即可
    2021-06-06
  • SpringBoot初始化接口CommandLineRunner示例詳解

    SpringBoot初始化接口CommandLineRunner示例詳解

    這篇文章主要介紹了SpringBoot初始化接口CommandLineRunner,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • 基于Java和GeoTools的Shapefile矢量數(shù)據(jù)縮略圖生成實(shí)踐

    基于Java和GeoTools的Shapefile矢量數(shù)據(jù)縮略圖生成實(shí)踐

    這篇文章主要介紹了基于Java和GeoTools的Shapefile矢量數(shù)據(jù)縮略圖生成實(shí)踐,需要的朋友可以參考下
    2024-08-08
  • 關(guān)于Java中static關(guān)鍵字的用法

    關(guān)于Java中static關(guān)鍵字的用法

    這篇文章主要介紹了關(guān)于Java中static關(guān)鍵字的用法,static:意為靜態(tài)的,在?Java?里面作為靜態(tài)修飾符,可以理解為全局的意思,static?不僅可以修飾成員變量,成員方法,還可以修飾代碼塊,需要的朋友可以參考下
    2023-08-08

最新評論