中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • 如何使用注解@Validated和BindingResult對入參進行非空校驗方式

如何使用注解@Validated和BindingResult對入參進行非空校驗方式

發布時間:2021-10-25 18:27:30 來源:億速云 閱讀:258 作者:iii 欄目:開發技術

本篇內容主要講解“如何使用注解@Validated和BindingResult對入參進行非空校驗方式”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何使用注解@Validated和BindingResult對入參進行非空校驗方式”吧!

目錄
  • 注解@Validated和BindingResult對入參非空校驗

  • @Validated 和 BindingResult 使用遇到的坑

注解@Validated和BindingResult對入參非空校驗

在項目當中少不了入參校驗,服務器和瀏覽器互不信任,不能因為前端加入參判斷了后臺就不處理了,這樣是不對的。

比如前臺傳過來一個對象作為入參參數,這個對象中有些屬性允許為空,有些屬性不允許為空。那么你還在使用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 = "職務不能為空")
    private String principalPosition;
 
    @NotNull
    @NotEmpty(groups = {SchoolDTO.SchoolGroup.class},message = "聯系電話不能為空")
    private String schoolPhone; 
    //getter setter tostring 省略
    public interface SchoolGroup{}  別忘了加這個
}

控制層:在入參對象上加@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;
        }
        // .........業務省略 
            return map;
        }
    }

測試:入參的時候我沒有傳principalPosition和schoolPhone

如何使用注解@Validated和BindingResult對入參進行非空校驗方式

@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

正確的內容截圖

如何使用注解@Validated和BindingResult對入參進行非空校驗方式

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持億速云。

到此,相信大家對“如何使用注解@Validated和BindingResult對入參進行非空校驗方式”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

师宗县| 北安市| 岳池县| 东山县| 定兴县| 石阡县| 顺义区| 太仓市| 灵山县| 三穗县| 易门县| 泸西县| 林周县| 佛坪县| 江孜县| 韩城市| 吴川市| 罗山县| 高唐县| 永和县| 石河子市| 南开区| 锦州市| 唐海县| 冷水江市| 卢湾区| 拉萨市| 高安市| 三江| 望江县| 旬邑县| 徐汇区| 蓝山县| 灵寿县| 鄄城县| 盐池县| 鄂伦春自治旗| 嘉黎县| 延安市| 略阳县| 信宜市|