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

springmvc使用@notNull注解驗證請求參數(shù)方式

 更新時間:2024年01月04日 10:20:43   作者:__WanG  
這篇文章主要介紹了springmvc使用@notNull注解驗證請求參數(shù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教<BR>

處理請求時, 有些參數(shù)是必傳或者必須遵循某些規(guī)則的, 如果針對每個請求都寫一遍驗證的話相當(dāng)繁瑣, 而且代碼維護起來也麻煩, 正好框架將參數(shù)校驗的功能抽象處理啊了, 我們可以利用這個完成80%的校驗場景

使用方式

使用起來很簡單, 只需要加上幾個注解即可

@NotNull

在需要驗證的非空字段前面加上@NotNull注解(注解還可設(shè)置提示語), 如下

@NotNull注解

@Min

有寫數(shù)值類型的需要限制范圍, 例如: 時間需要大于0

時間戳應(yīng)該大于0

@valid

在需要校驗的接口的入?yún)⑶凹由?code>@valid注解

入?yún)⑶凹由? src=

驗證生效

這兩個地方加上注解就可以了

生效圖示

進階

有時候默認的非空或者范圍校驗不能滿足部分定制化的需求

我們可以通過自定義校驗注解來按我們的凡是校驗數(shù)據(jù)

注解接口

定義一個自己的注解(檢驗邏輯入口)

注意:

Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};

這兩個是必須的…

@Target(value= {METHOD, FIELD, ANNOTATION_TYPE})
@Retention(RUNTIME)
@Constraint(validatedBy = CheckEvaluationKeyValidator.class)
@Documented
public @interface CheckEvaluationKey {
    String message() default "{CheckEvaluationKey}";

    Class<?>[] groups() default {};
    
    Class<? extends Payload>[] payload() default {};

    String evaluationKey() default "";
}

校驗邏輯實現(xiàn)

實現(xiàn)校驗邏輯, 需要在自定義注解中指定使用的校驗邏輯

@Constraint(validatedBy = CheckEvaluationKeyValidator.class)

系統(tǒng)就會更具注解自動進入我們的校驗邏輯

public class CheckEvaluationKeyValidator implements ConstraintValidator<CheckEvaluationKey, String> {

    private String checkEvaluationKey;
    
    @Override
    public void initialize(CheckEvaluationKey constraintAnnotation) {
        this.checkEvaluationKey = constraintAnnotation.evaluationKey();
    }
    
    @Override
    public boolean isValid(String value, ConstraintValidatorContext context) {
        
        if (JudgeUtil.isNull(checkEvaluationKey)) {
            String evaluationName = EvaluationEnum.getEvaluationNameWithOutAssert(value);
            return JudgeUtil.isPresent(evaluationName);
            
        } else {
            return JudgeUtil.equals(value, checkEvaluationKey);
        }
    }
}

自定義注解使用

自定義注解使用

其他校驗注解

  • @Null: 被注釋的元素必須為null
  • @NotNull: 被注釋的元素不能為null
  • @AssertTrue: 被注釋的元素必須為true
  • @AssertFalse: 被注釋的元素必須為false
  • @Min(value): 被注釋的元素必須是一個數(shù)字,其值必須大于等于指定的最小值
  • @Max(value): 被注釋的元素必須是一個數(shù)字,其值必須小于等于指定的最大值
  • @DecimalMin(value): 被注釋的元素必須是一個數(shù)字,其值必須大于等于指定的最小值
  • @DecimalMax(value): 被注釋的元素必須是一個數(shù)字,其值必須小于等于指定的最大值
  • @Size(max,min): 被注釋的元素的大小必須在指定的范圍內(nèi)。
  • @Digits(integer,fraction): 被注釋的元素必須是一個數(shù)字,其值必須在可接受的范圍內(nèi)
  • @Past: 被注釋的元素必須是一個過去的日期
  • @Future: 被注釋的元素必須是一個將來的日期
  • @Pattern(value): 被注釋的元素必須符合指定的正則表達式。
  • @Email: 被注釋的元素必須是電子郵件地址
  • @Length: 被注釋的字符串的大小必須在指定的范圍內(nèi)
  • @NotEmpty: 被注釋的字符串必須非空
  • @Range: 被注釋的元素必須在合適的范圍內(nèi)

總結(jié)

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

相關(guān)文章

  • CentOS 7下JDK8的詳細安裝步驟

    CentOS 7下JDK8的詳細安裝步驟

    這篇文章主要為大家介紹了CentOS 7下JDK8的詳細安裝步驟,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • SpringCloud重試機制配置詳解

    SpringCloud重試機制配置詳解

    本篇文章主要介紹了SpringCloud重試機制配置詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Java常量池知識點總結(jié)

    Java常量池知識點總結(jié)

    本篇文章給大家通過理論原理等方便徹底分析了Java常量池的相關(guān)知識,有興趣的朋友閱讀學(xué)習(xí)下吧。
    2017-12-12
  • java讀取文件和寫入文件的方式(簡單實例)

    java讀取文件和寫入文件的方式(簡單實例)

    下面小編就為大家?guī)硪黄猨ava讀取文件和寫入文件的方式(簡單實例)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • spring整合atomikos實現(xiàn)分布式事務(wù)的方法示例

    spring整合atomikos實現(xiàn)分布式事務(wù)的方法示例

    本文整合了一個spring和atomikos的demo,并且通過案例演示說明atomikos的作用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Spring?Security圖形驗證碼的實現(xiàn)代碼

    Spring?Security圖形驗證碼的實現(xiàn)代碼

    本文介紹了如何在SpringSecurity自定義認證中添加圖形驗證碼,首先需要在maven中添加相關(guān)依賴并創(chuàng)建驗證碼對象,然后通過Spring的HttpSessionSessionStrategy對象將驗證碼存儲到Session中,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • 詳解如何在SpringBoot項目中使用全局異常處理

    詳解如何在SpringBoot項目中使用全局異常處理

    在完整的項目開發(fā)中,異常的出現(xiàn)幾乎是無法避免的;如果凡是有可能出現(xiàn)異常的地方,我們都手動的使用try-catch將其捕獲的話,會使得代碼顯得十分臃腫并且后期不好維護。本文介紹了pringBoot項目中使用全局異常處理的方法,需要的可以參考一下
    2022-10-10
  • Java語言實現(xiàn)最大堆代碼示例

    Java語言實現(xiàn)最大堆代碼示例

    這篇文章主要介紹了Java語言實現(xiàn)最大堆代碼示例,具有一定參考價值,需要的朋友可以了解下。
    2017-12-12
  • Java中將字符串?dāng)?shù)字轉(zhuǎn)換成數(shù)字類型的多種方法

    Java中將字符串?dāng)?shù)字轉(zhuǎn)換成數(shù)字類型的多種方法

    這篇文章主要介紹了Java中將字符串?dāng)?shù)字轉(zhuǎn)換成數(shù)字類型的多種方法,Java中字符串轉(zhuǎn)數(shù)字可用parseXXX方法、自動類型推斷、異常處理、BigDecimal及Apache庫實現(xiàn),需注意格式驗證、數(shù)據(jù)可靠性、精度及性能選擇,尤其處理用戶輸入時推薦帶異常處理方案,需要的朋友可以參考下
    2025-08-08
  • Java數(shù)據(jù)結(jié)構(gòu)之LinkedList從鏈表到實現(xiàn)

    Java數(shù)據(jù)結(jié)構(gòu)之LinkedList從鏈表到實現(xiàn)

    LinkedList是Java中常用的數(shù)據(jù)結(jié)構(gòu)之一,實現(xiàn)了鏈表的特性,支持快速添加、刪除元素,可以用于實現(xiàn)隊列、棧、雙向隊列等數(shù)據(jù)結(jié)構(gòu)。LinkedList的內(nèi)部實現(xiàn)采用了雙向鏈表,其中每個節(jié)點都包含前驅(qū)節(jié)點和后繼節(jié)點的引用,可以直接訪問鏈表的頭尾元素
    2023-04-04

最新評論

图们市| 泗洪县| 张掖市| 贡嘎县| 永丰县| 定安县| 手机| 全州县| 玛纳斯县| 罗江县| 梁河县| 龙山县| 金沙县| 昂仁县| 成安县| 建瓯市| 通城县| 新田县| 怀化市| 屏南县| 孟州市| 栖霞市| 广德县| 马鞍山市| 讷河市| 阿克| 榆社县| 仪陇县| 乾安县| 道真| 资兴市| 安阳县| 阿瓦提县| 丽江市| 昌乐县| 普定县| 上栗县| 资阳市| 米泉市| 莱阳市| 达州市|