最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot參數(shù)校驗(yàn)之@Valid的使用詳解

 更新時(shí)間:2022年06月28日 09:23:15   作者:IT利刃出鞘  
這篇文章主要通過(guò)示例為大家詳細(xì)介紹一下介紹了SpringBoot參數(shù)校驗(yàn)中@Valid的使用方法,文中的示例代碼講解詳細(xì),需要的可以參考一下

簡(jiǎn)介

說(shuō)明

本文用示例說(shuō)明SpringBoot的@Valid的用法。

依賴

<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
</dependency>

代碼 

Controller

package com.example.demo.simple.controller;
 
import com.example.demo.simple.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
import javax.validation.Valid;
import java.util.List;
 
@Api(tags = "不分組")
@RestController
@RequestMapping("valid")
public class ValidController {
 
    @ApiOperation("正常用法")
    @GetMapping("normal")
    public User normal(@Valid User user) {
        return user;
    }
 
    @ApiOperation("獲得BindingResult")
    @GetMapping("bindingResult")
    public User bindingResult(@Valid User user, BindingResult bindingResult) {
        if (bindingResult.hasErrors()){
            List<ObjectError> list = bindingResult.getAllErrors();
            for (ObjectError objectError : list) {
                System.out.println(objectError.getDefaultMessage());
            }
            //System.out.println(bindingResult.getFieldError().getDefaultMessage());
        }
 
        return user;
    }
 
}

Entity

User類(lèi)

package com.example.demo.simple.entity;
 
import lombok.Data;
 
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
 
@Data
public class User {
    @NotBlank(message = "名字不能為空")
    private String name;
 
    private Integer age;
 
    @NotBlank(message = "密碼不能為空")
    private String password;
 
    @NotEmpty(message = "分?jǐn)?shù)不能為空")
    private List<Integer> scoreArray;
 
    @Valid
    @NotNull(message = "賬戶不能為null")
    private Account account;
}

Account類(lèi)

package com.example.demo.simple.entity;
 
import lombok.Data;
 
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
 
@Data
public class Account {
    @NotBlank(message = "電話號(hào)碼不能為空")
    private String phoneNumber;
 
    private String[] emails;
}

測(cè)試

本文為了展示后端錯(cuò)誤,直接用postman來(lái)進(jìn)行請(qǐng)求。

實(shí)際上,如果用了knife4j這個(gè)接口工具,它能自動(dòng)識(shí)別是否為空的注解,并在前端進(jìn)行控制。如果不能為空,則前端直接顯示為紅色的框。

測(cè)試1:缺少字段

postman訪問(wèn):http://localhost:8080/valid/normal

postman訪問(wèn)結(jié)果:

后端結(jié)果:

2021-12-22 15:32:20.032  WARN 94176 --- [nio-8080-exec-5] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 3 errors
Field error in object 'user' on field 'account': rejected value [null]; codes [NotNull.user.account,NotNull.account,NotNull.com.example.demo.simple.entity.Account,NotNull]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [user.account,account]; arguments []; default message [account]]; default message [賬戶不能為null]
Field error in object 'user' on field 'password': rejected value [null]; codes [NotBlank.user.password,NotBlank.password,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [user.password,password]; arguments []; default message [password]]; default message [密碼不能為空]
Field error in object 'user' on field 'scoreArray': rejected value [null]; codes [NotEmpty.user.scoreArray,NotEmpty.scoreArray,NotEmpty.java.util.List,NotEmpty]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [user.scoreArray,scoreArray]; arguments []; default message [scoreArray]]; default message [分?jǐn)?shù)不能為空]]

測(cè)試2:不缺少字段

postman訪問(wèn):http://localhost:8080/valid/normal

postman結(jié)果:

測(cè)試3:缺少字段,后端獲取BindResult 

postman訪問(wèn):http://localhost:8080/valid/bindingResult

postman結(jié)果:

后端結(jié)果

賬戶不能為null
密碼不能為空
分?jǐn)?shù)不能為空

可以看到,沒(méi)有報(bào)錯(cuò)。 

以上就是SpringBoot參數(shù)校驗(yàn)之@Valid的使用詳解的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot參數(shù)校驗(yàn)@Valid的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Intellij IDEA插件開(kāi)發(fā)入門(mén)詳解

    Intellij IDEA插件開(kāi)發(fā)入門(mén)詳解

    這篇文章主要介紹了Intellij IDEA插件開(kāi)發(fā)入門(mén)詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • java 中Map詳解及實(shí)例代碼

    java 中Map詳解及實(shí)例代碼

    這篇文章主要介紹了java 中Map詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Java解決約瑟夫問(wèn)題代碼實(shí)例

    Java解決約瑟夫問(wèn)題代碼實(shí)例

    這篇文章主要介紹了Java解決約瑟夫(環(huán))問(wèn)題的代碼實(shí)例,決約瑟問(wèn)題貌似經(jīng)常出現(xiàn)在面試題中,需要的朋友可以參考下
    2014-03-03
  • Spring深入分析講解BeanUtils的實(shí)現(xiàn)

    Spring深入分析講解BeanUtils的實(shí)現(xiàn)

    java知識(shí)體系統(tǒng)有很多數(shù)據(jù)實(shí)體,比較常用的DTO、BO、DO、VO等,其他類(lèi)似POJO概念太老了現(xiàn)在基本廢棄掉了,本篇幅直接忽略,對(duì)于這幾種數(shù)據(jù)實(shí)體各自代表的含義和應(yīng)用場(chǎng)景先做一下簡(jiǎn)單描述和分析
    2022-06-06
  • spring-kafka使消費(fèi)者動(dòng)態(tài)訂閱新增的topic問(wèn)題

    spring-kafka使消費(fèi)者動(dòng)態(tài)訂閱新增的topic問(wèn)題

    這篇文章主要介紹了spring-kafka使消費(fèi)者動(dòng)態(tài)訂閱新增的topic問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Spring零基礎(chǔ)入門(mén)IOC

    Spring零基礎(chǔ)入門(mén)IOC

    IoC就是比方說(shuō)有一個(gè)類(lèi),我們想要調(diào)用類(lèi)里面的方法(不是靜態(tài)方法),就要?jiǎng)?chuàng)建該類(lèi)的對(duì)象,使用對(duì)象調(diào)用方法來(lái)實(shí)現(xiàn)。但對(duì)于Spring來(lái)說(shuō),Spring創(chuàng)建對(duì)象的過(guò)程,不是在代碼里面實(shí)現(xiàn)的,而是交給Spring來(lái)進(jìn)行配置實(shí)現(xiàn)的
    2022-08-08
  • Java性能調(diào)優(yōu)及排查方式

    Java性能調(diào)優(yōu)及排查方式

    這篇文章主要介紹了Java性能調(diào)優(yōu)及排查方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Java實(shí)現(xiàn)兩人五子棋游戲(七) 屏幕提示信息

    Java實(shí)現(xiàn)兩人五子棋游戲(七) 屏幕提示信息

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)兩人五子棋游戲,屏幕提示游戲信息,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • java的list集合排序自定義元素方式

    java的list集合排序自定義元素方式

    在Java中,對(duì)包含自定義元素的List集合進(jìn)行排序可以使用Collections.sort()方法,并結(jié)合自定義的比較器實(shí)現(xiàn),以Student類(lèi)為例,通過(guò)實(shí)現(xiàn)Comparator接口來(lái)按學(xué)生年齡升序排序
    2024-12-12
  • IDEA如何撤銷(xiāo)本地commit的代碼

    IDEA如何撤銷(xiāo)本地commit的代碼

    這篇文章主要介紹了IDEA如何撤銷(xiāo)本地commit的代碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評(píng)論

平罗县| 兴业县| 嘉义市| 青冈县| 贞丰县| 华阴市| 剑川县| 新兴县| 巫山县| 綦江县| 澳门| 宁南县| 雷山县| 铁力市| 甘肃省| 东台市| 长葛市| 辽宁省| 南丰县| 塔河县| 巨野县| 错那县| 福建省| 交口县| 西乌| 颍上县| 台南县| 团风县| 静海县| 蚌埠市| 绵阳市| 双柏县| 宁强县| 精河县| 托克托县| 西青区| 阳曲县| 淮安市| 河北区| 白沙| 峨眉山市|