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

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

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

簡介

說明

本文用示例說明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類

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 = "分數(shù)不能為空")
    private List<Integer> scoreArray;
 
    @Valid
    @NotNull(message = "賬戶不能為null")
    private Account account;
}

Account類

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 = "電話號碼不能為空")
    private String phoneNumber;
 
    private String[] emails;
}

測試

本文為了展示后端錯誤,直接用postman來進行請求。

實際上,如果用了knife4j這個接口工具,它能自動識別是否為空的注解,并在前端進行控制。如果不能為空,則前端直接顯示為紅色的框。

測試1:缺少字段

postman訪問:http://localhost:8080/valid/normal

postman訪問結(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 [分數(shù)不能為空]]

測試2:不缺少字段

postman訪問:http://localhost:8080/valid/normal

postman結(jié)果:

測試3:缺少字段,后端獲取BindResult 

postman訪問:http://localhost:8080/valid/bindingResult

postman結(jié)果:

后端結(jié)果

賬戶不能為null
密碼不能為空
分數(shù)不能為空

可以看到,沒有報錯。 

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

相關(guān)文章

  • Intellij IDEA插件開發(fā)入門詳解

    Intellij IDEA插件開發(fā)入門詳解

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

    java 中Map詳解及實例代碼

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

    Java解決約瑟夫問題代碼實例

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

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

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

    spring-kafka使消費者動態(tài)訂閱新增的topic問題

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

    Spring零基礎(chǔ)入門IOC

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

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

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

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

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

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

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

    IDEA如何撤銷本地commit的代碼

    這篇文章主要介紹了IDEA如何撤銷本地commit的代碼問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評論

马关县| 即墨市| 七台河市| 南宁市| 太仆寺旗| 东方市| 收藏| 上虞市| 镇康县| 玉门市| 南陵县| 嵩明县| 乾安县| 聊城市| 濮阳县| 个旧市| 永靖县| 峨眉山市| 石嘴山市| 专栏| 花莲县| 广西| 衡水市| 历史| 安康市| 吉林市| 建昌县| 军事| 河西区| 镇远县| 晋宁县| 焦作市| 临汾市| 崇文区| 新津县| 丹阳市| 家居| 九龙城区| 自治县| 农安县| 黄陵县|