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

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

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

注解@Validated和BindingResult對入?yún)⒎强招r?/h2>

在項目當中少不了入?yún)⑿r?,服?wù)器和瀏覽器互不信任,不能因為前端加入?yún)⑴袛嗔撕笈_就不處理了,這樣是不對的。

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

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

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

實體類:什么不允許為空就加

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

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

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

控制層:在入?yún)ο笊霞覢Validated({SchoolDTO.SchoolGroup.class}), BindingResult bindingResult @Validated進行驗證,BindingResult可以獲取校驗錯誤信息

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

測試:入?yún)⒌臅r候我沒有傳principalPosition和schoolPhone

@Validated 和 BindingResult 使用遇到的坑

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

控制臺輸出

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)容截圖

在這里插入圖片描述

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

相關(guān)文章

  • Servlet中文亂碼問題解決方案解析

    Servlet中文亂碼問題解決方案解析

    這篇文章主要介紹了Servlet中文亂碼問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • 基于Java實現(xiàn)一個高效可伸縮的計算結(jié)果緩存

    基于Java實現(xiàn)一個高效可伸縮的計算結(jié)果緩存

    這篇文章將通過對一個計算結(jié)果緩存的設(shè)計迭代介紹,分析每個版本的并發(fā)缺陷,并分析如何修復這些缺陷,最終完成一個高效可伸縮的計算結(jié)果緩存,感興趣的小伙伴可以了解一下
    2023-06-06
  • IDEA利用jclasslib 修改class文件的實現(xiàn)

    IDEA利用jclasslib 修改class文件的實現(xiàn)

    這篇文章主要介紹了IDEA利用jclasslib 修改class文件的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • MyBatis執(zhí)行SQL的兩種方式小結(jié)

    MyBatis執(zhí)行SQL的兩種方式小結(jié)

    本文主要介紹了MyBatis執(zhí)行SQL的兩種方式小結(jié),主要包括SqlSession 發(fā)送SQL和SqlSession獲取Mapper接口,通過Mapper接口發(fā)送SQL,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • Java實現(xiàn)簡單聊天機器人

    Java實現(xiàn)簡單聊天機器人

    這篇文章主要為大家詳細介紹了Java實現(xiàn)簡單聊天機器人,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Java中double保留兩位小數(shù)的多種方法

    Java中double保留兩位小數(shù)的多種方法

    這篇文章主要給大家介紹了關(guān)于Java中double保留兩位小數(shù)的多種方法,對于double數(shù)據(jù)類型進行計算發(fā)生的精度丟失的情況,可以按照自己的需求選擇任意方式,需要的朋友可以參考下
    2023-07-07
  • 簡單談?wù)凧ava中的方法和方法重載

    簡單談?wù)凧ava中的方法和方法重載

    下面小編就為大家?guī)硪黄唵握務(wù)凧ava中的方法和方法重載。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • javacv開發(fā)詳解之調(diào)用本機攝像頭視頻

    javacv開發(fā)詳解之調(diào)用本機攝像頭視頻

    這篇文章主要介紹了javacv開發(fā)詳解之調(diào)用本機攝像頭視頻,對javacv感興趣的同學,可以參考下
    2021-04-04
  • IDEA實現(xiàn)導入module并成功運行

    IDEA實現(xiàn)導入module并成功運行

    這篇文章主要介紹了IDEA實現(xiàn)導入module并成功運行方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • springboot創(chuàng)建攔截器過程圖解

    springboot創(chuàng)建攔截器過程圖解

    這篇文章主要介紹了springboot創(chuàng)建攔截器過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12

最新評論

永嘉县| 即墨市| 东明县| 乐山市| 沅陵县| 读书| 忻州市| 张家川| 株洲市| 花莲市| 固安县| 上犹县| 卢龙县| 山西省| 南开区| 得荣县| 建阳市| 德兴市| 油尖旺区| 赤壁市| 荥阳市| 赤壁市| 平山县| 平武县| 潜江市| 如皋市| 高安市| 大石桥市| 塔河县| 白水县| 郎溪县| 常宁市| 和平县| 昌平区| 扬州市| 项城市| 永胜县| 广南县| 双桥区| 都江堰市| 丰城市|