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

springboot表單提交之validator校驗

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

前言

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

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>

在這里插入圖片描述

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校驗內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java將List轉換為String的幾種方式

    Java將List轉換為String的幾種方式

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

    Spring Boot 中的Servlet簡單使用

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

    Java線程編程中Thread類的基礎學習教程

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

    Java效率提升神器jOOR

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

    Java中Scanner用法簡單示例

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

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

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

    關于idea中ssm框架的編碼問題分析

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

    SpringBoot初始化接口CommandLineRunner示例詳解

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

    基于Java和GeoTools的Shapefile矢量數據縮略圖生成實踐

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

    關于Java中static關鍵字的用法

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

最新評論