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

使用注解@Validated和BindingResult對(duì)入?yún)⑦M(jìn)行非空校驗(yàn)方式

 更新時(shí)間:2021年10月23日 14:23:38   作者:merge.  
這篇文章主要介紹了使用注解@Validated和BindingResult對(duì)入?yún)⑦M(jìn)行非空校驗(yàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

注解@Validated和BindingResult對(duì)入?yún)⒎强招r?yàn)

在項(xiàng)目當(dāng)中少不了入?yún)⑿r?yàn),服務(wù)器和瀏覽器互不信任,不能因?yàn)榍岸思尤雲(yún)⑴袛嗔撕笈_(tái)就不處理了,這樣是不對(duì)的。

比如前臺(tái)傳過(guò)來(lái)一個(gè)對(duì)象作為入?yún)?shù),這個(gè)對(duì)象中有些屬性允許為空,有些屬性不允許為空。那么你還在使用if()else{}進(jìn)行非空判斷嗎?不妨嘗試下使用注解,可以使用@Validated和BindingResult。

注意:BindingResult需要放到@Validated后面

示例代碼如下:普通屬性可以用@NotEmpty() 特殊的使用@NotNull() 比如:枚舉類(lèi)型

實(shí)體類(lèi):什么不允許為空就加

@NotEmpty(groups = {SchoolDTO.SchoolGroup.class},message = "學(xué)校名不能為空")

注意:重要的事情叮囑兩遍。public interface SchoolGroup{} 別忘了加這個(gè)!public interface SchoolGroup{} 別忘了加這個(gè)!

public class SchoolDTO implements Serializable { 
    private Long id;
    @NotEmpty(groups = {SchoolDTO.SchoolGroup.class},message = "學(xué)校名不能為空")
    private String schoolName;
 
    @NotNull
    @NotEmpty(groups = {SchoolDTO.SchoolGroup.class},message = "學(xué)校負(fù)責(zé)人不能為空")
    private String schoolPrincipal;
 
    @NotNull
    @NotEmpty(groups = {SchoolDTO.SchoolGroup.class},message = "職務(wù)不能為空")
    private String principalPosition;
 
    @NotNull
    @NotEmpty(groups = {SchoolDTO.SchoolGroup.class},message = "聯(lián)系電話(huà)不能為空")
    private String schoolPhone; 
    //getter setter tostring 省略
    public interface SchoolGroup{}  別忘了加這個(gè)
}

控制層:在入?yún)?duì)象上加@Validated({SchoolDTO.SchoolGroup.class}), BindingResult bindingResult @Validated進(jìn)行驗(yàn)證,BindingResult可以獲取校驗(yàn)錯(cuò)誤信息

  @PostMapping("/schools")
    @PreAuthorize("hasRole(\"" + AuthoritiesConstants.ADMIN + "\")")
    public Map<String,Object> createSchool(@RequestBody @Validated({SchoolDTO.SchoolGroup.class}) SchoolDTO schoolDTO,BindingResult bindingResult) throws Exception {
      //返回校驗(yàn)錯(cuò)誤信息
        Map<String,Object>map=new HashMap<>();
        if(bindingResult.hasErrors()){
            map.put("success","false");
            map.put("message",bindingResult.getAllErrors());
            return map;
        }
        // .........業(yè)務(wù)省略 
            return map;
        }
    }

測(cè)試:入?yún)⒌臅r(shí)候我沒(méi)有傳principalPosition和schoolPhone

@Validated 和 BindingResult 使用遇到的坑

@Validated 與BindingResult 需要相鄰,否則 變量result 不能接受錯(cuò)誤信息

控制臺(tái)輸出

Field error in object 'entity' on field '變量': rejected value [null]; codes [NotNull.entity.變量,NotNull.變量,NotNull.java.lang.String,NotNull]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes

正確的內(nèi)容截圖

在這里插入圖片描述

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Boot多模塊化后,服務(wù)間調(diào)用的坑及解決

    Spring Boot多模塊化后,服務(wù)間調(diào)用的坑及解決

    這篇文章主要介紹了Spring Boot多模塊化后,服務(wù)間調(diào)用的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 詳解如何把cmd黑窗口把java文件打包成jar

    詳解如何把cmd黑窗口把java文件打包成jar

    本文主要介紹了如何把cmd黑窗口把java文件打包成jar,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Java中documentHelper解析xml獲取想要的數(shù)據(jù)

    Java中documentHelper解析xml獲取想要的數(shù)據(jù)

    本文主要介紹了Java中documentHelper解析xml獲取想要的數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • java實(shí)現(xiàn)二維碼掃碼授權(quán)登陸

    java實(shí)現(xiàn)二維碼掃碼授權(quán)登陸

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)二維碼掃碼授權(quán)登陸,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • SSH框架網(wǎng)上商城項(xiàng)目第4戰(zhàn)之EasyUI菜單的實(shí)現(xiàn)

    SSH框架網(wǎng)上商城項(xiàng)目第4戰(zhàn)之EasyUI菜單的實(shí)現(xiàn)

    SSH框架網(wǎng)上商城項(xiàng)目第4戰(zhàn)之EasyUI菜單的實(shí)現(xiàn),本文主要使用EasyUI技術(shù)簡(jiǎn)單實(shí)現(xiàn)后臺(tái)菜單,感興趣的小伙伴們可以參考一下
    2016-05-05
  • java 異常捕獲及處理案例詳解

    java 異常捕獲及處理案例詳解

    這篇文章主要介紹了java 異常捕獲及處理案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • springboot整合nacos,如何讀取nacos配置文件

    springboot整合nacos,如何讀取nacos配置文件

    這篇文章主要介紹了springboot整合nacos,如何讀取nacos配置文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • JavaWEB中Servlet的生命周期詳解

    JavaWEB中Servlet的生命周期詳解

    大家好,本篇文章主要講的是JavaWEB中Servlet的生命周期詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下
    2022-01-01
  • Java 基礎(chǔ) byte[]與各種數(shù)據(jù)類(lèi)型互相轉(zhuǎn)換的簡(jiǎn)單示例

    Java 基礎(chǔ) byte[]與各種數(shù)據(jù)類(lèi)型互相轉(zhuǎn)換的簡(jiǎn)單示例

    這篇文章主要介紹了Java 基礎(chǔ) byte[]與各種數(shù)據(jù)類(lèi)型互相轉(zhuǎn)換的簡(jiǎn)單示例的相關(guān)資料,這里對(duì)byte[]類(lèi)型對(duì)long,int,double,float,short,cahr,object,string類(lèi)型相互轉(zhuǎn)換的實(shí)例,需要的朋友可以參考下
    2017-01-01
  • SpringCloud學(xué)習(xí)筆記之OpenFeign進(jìn)行服務(wù)調(diào)用

    SpringCloud學(xué)習(xí)筆記之OpenFeign進(jìn)行服務(wù)調(diào)用

    OpenFeign對(duì)feign進(jìn)行進(jìn)一步的封裝,添加了springmvc的一些功能,更加強(qiáng)大,下面這篇文章主要給大家介紹了關(guān)于SpringCloud學(xué)習(xí)筆記之OpenFeign進(jìn)行服務(wù)調(diào)用的相關(guān)資料,需要的朋友可以參考下
    2022-01-01

最新評(píng)論