亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaBean valication驗證實現方法示例

 更新時間:2020年03月05日 12:14:24   作者:程序媛-jjl  
這篇文章主要介紹了JavaBean valication驗證實現方法,結合實例形式分析了JavaBean valication驗證相關概念、原理、用法及操作注意事項,需要的朋友可以參考下

本文實例講述了JavaBean valication驗證實現方法。分享給大家供大家參考,具體如下:

在實際項目中,會遇到對JavaBean進行操作的時候,比如我們做個后臺管理,添加某個用戶信息,添加某個產品,需要對參數進行驗證,看是否符合需求,后端就可以使用valication去驗證參數,而不需要一個一個去在代碼中驗證,這樣顯得代碼非常的冗余。

校驗注解:

valication提供了很多的校驗注解,具體的參數可以去看源碼,主要是message參數,要是校驗不符合的時候,會返回這些自定義的不符合信息。

注解類型 屬性值類型 使用說明
@AssertFalse Boolean、boolean 被注解的屬性值是false。
@AssertTrue Boolean、boolean 被注解的屬性值是true。
@DecimalMax(value) BigDecimal、BigInteger、String、byte、short、int、long及對應類型的封裝類 被注解的屬性值必須是數字,其值必須小于或等于指定的最大值。注:參數值必須是能正確轉化為BigDecimal的字符串,即,會使用new BigDecimal(String str)。
@DecimalMin(value) BigDecimal、BigInteger、String、byte、short、int、long及對應類型的封裝類 被注解的屬性值必須是數字,其值必須大于或等于指定的最小值。注:參數值必須是能正確轉化為BigDecimal的字符串,即,會使用new BigDecimal(String str)。
@Max BigDecimal、BigInteger、byte、short、int、long及對應類型的封裝類 被注解的屬性值必須小于或等于指定的最大值。
@Min BigDecimal、BigInteger、byte、short、int、long及對應類型的封裝類 被注解的屬性值必須大于或等于指定的最小值。
@Digits(integer=,fraction=) BigDecimal、BigInteger、String、byte、short、int、long及對應類型的封裝類 被注解的屬性值必須是數字,且整數位最多integer位,小數位最多fraction位。
@Email String 被注解的屬性值是Email地址
@Negative   被注解的屬性值必須為負數。
@NegativeOrZero   被注解的屬性值必須為負數或0。
@Positive   被注解的屬性值必須為正數。
@PositiveOrZero   被注解的屬性值必須為正數或0。
@NotBlank String 被注解的屬性值是否為非null,并且去空格之后的length大于0。與@NotEmpty的區(qū)別在于,@NotBlank只能注解字符串,并且忽略結尾空格。
@NotEmpty String、Collection、Map、arrays 被注解的屬性值是否為非null或空集合。
@NotNull 任意類型 被注解的屬性值是否為非null。
@Null 任意類型 被注解的屬性值是否為null。
@Future java.util.Date,
java.util.Calendar;
被注解的屬性值必須是將來的一個日期。
@FutureOrPresent java.util.Date,
java.util.Calendar;
被注解的屬性值必須是當前或將來的一個日期。
@PastOrPresent java.util.Date,
java.util.Calendar;
被注解的屬性值必須是現在或過去的一個日期。
@Past java.util.Date,
java.util.Calendar;
被注解的屬性值必須是過去的一個日期。
@Size(min=, max=) String、Collection、Map、arrays 驗證注解的元素值的在min和max(包含)指定區(qū)間之內,如字符長度、集合大小

注:

1  @NotEmpty :不能為null,且Size>0

2  @NotNull:不能為null,但可以為empty,沒有Size的約束

3  @NotBlank:只用于String,不能為null且trim()之后size>0

接下來,我們就在postman中模擬,添加用戶的信息。

1.創(chuàng)建一個用戶Bean,并注解上相應的驗證。

public class UserBean {
  //不為空判斷
  @NotEmpty(message = "用戶名不能為空")
  private String userName;
  //手機正則驗證
  @NotEmpty (message = "電話號碼不能為空")
  @Pattern(regexp = "^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\\d{8}$",message = "電話號碼不正確")
  private String mobile;
  //數值限定大小
  @NotNull(message = "年齡不能為空")
  @Min(message = "你未成年額!",value = 18)
  private Integer age;
  //默認匹配所有的正則,需要自己寫匹配規(guī)則,使用里面的regexp參數
  @Email(message = "email格式不對")
  private String email;
 
  public String getUserName() {
    return userName;
  }
 
  public void setUserName(String userName) {
    this.userName = userName;
  }
 
  public String getMobile() {
    return mobile;
  }
 
  public void setMobile(String mobile) {
    this.mobile = mobile;
  }
 
  public Integer getAge() {
    return age;
  }
 
  public void setAge(Integer age) {
    this.age = age;
  }
 
  public String getEmail() {
    return email;
  }
 
  public void setEmail(String email) {
    this.email = email;
  }
}

2.在controller層中對前端傳過來的數據與自己寫的驗證校驗是否正確,使用@Valid開啟對對象進行校驗。

@RestController
public class ValidationController {
 
  @PostMapping("addUserMessage")
  public String addUserMessage(@Valid @RequestBody UserBean userBean,BindingResult bindingResult){
    //如果表單驗證錯誤,獲取message中的信息并返回
    if(bindingResult.hasErrors()){
      return bindingResult.getFieldError().getDefaultMessage();
    }
    //表單驗證成功之后,可以寫邏輯代碼或者寫入數據
    return "操作成功";
  }
}

3.在postman中進行各種驗證,只有當所有的都校驗成功后,才會往下走。

更多關于java算法相關內容感興趣的讀者可查看本站專題:《Java數據結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設計有所幫助。

相關文章

  • Java中的分布式鎖與同步鎖使用詳解

    Java中的分布式鎖與同步鎖使用詳解

    這篇文章主要介紹了Java中的分布式鎖與同步鎖使用詳解,在分布式系統(tǒng)中,由于存在多個節(jié)點并行執(zhí)行任務,可能會出現競爭條件和數據不一致的問題,分布式鎖通過約束同一時刻只有一個節(jié)點能夠獲得鎖的方式,確保了對共享資源的獨占訪問,需要的朋友可以參考下
    2023-07-07
  • 使用springboot整合mybatis-plus實現數據庫的增刪查改示例

    使用springboot整合mybatis-plus實現數據庫的增刪查改示例

    這篇文章主要介紹了使用springboot整合mybatis-plus實現數據庫的增刪查改示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • Java IO流之字符緩沖流實例詳解

    Java IO流之字符緩沖流實例詳解

    這篇文章主要介紹了Java IO流之字符緩沖流,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • Java 封裝的使用詳解

    Java 封裝的使用詳解

    在面向對象程式設計方法中,封裝(英語:Encapsulation)是指一種將抽象性函式接口的實現細節(jié)部分包裝、隱藏起來的方法。封裝可以被認為是一個保護屏障,防止該類的代碼和數據被外部類定義的代碼隨機訪問。要訪問該類的代碼和數據,必須通過嚴格的接口控制
    2021-11-11
  • 劍指Offer之Java算法習題精講數組查找與字符串交集

    劍指Offer之Java算法習題精講數組查找與字符串交集

    跟著思路走,之后從簡單題入手,反復去看,做過之后可能會忘記,之后再做一次,記不住就反復做,反復尋求思路和規(guī)律,慢慢積累就會發(fā)現質的變化
    2022-03-03
  • IDEA刪除的文件怎么找回更新的方法

    IDEA刪除的文件怎么找回更新的方法

    查找本地歷史記錄IDEA在進行代碼版本管理時,會自動創(chuàng)建本地歷史記錄,如果我們誤刪了文件,可以通過查找本地歷史記錄來找回文件,本文就來介紹一下
    2023-11-11
  • SpringBoot日程管理Quartz與定時任務Task實現詳解

    SpringBoot日程管理Quartz與定時任務Task實現詳解

    定時任務是企業(yè)級開發(fā)中必不可少的組成部分,諸如長周期業(yè)務數據的計算,例如年度報表,諸如系統(tǒng)臟數據的處理,再比如系統(tǒng)性能監(jiān)控報告,還有搶購類活動的商品上架,這些都離不開定時任務。本節(jié)將介紹兩種不同的定時任務技術
    2022-09-09
  • IntelliJ IDEA 熱部署插件JRebel的使用

    IntelliJ IDEA 熱部署插件JRebel的使用

    這篇文章主要介紹了IntelliJ IDEA 熱部署插件JRebel的使用,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Maven使用方法詳及方式詳細介紹

    Maven使用方法詳及方式詳細介紹

    使用maven倉庫的話需要從網上下載maven的包,比如“apache-maven-3.5.4-bin.tar”,下載完成之后解壓,在解壓的文件夾中的conf目錄下的settings.xml文件夾下就可以配置maven遠程倉庫和本地倉庫的地址
    2022-11-11
  • Java使用JDBC連接數據庫的詳細步驟

    Java使用JDBC連接數據庫的詳細步驟

    本文詳細講解了Java使用JDBC連接數據庫的詳細步驟,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-01-01

最新評論