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

JavaBean valication驗(yàn)證實(shí)現(xiàn)方法示例

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

本文實(shí)例講述了JavaBean valication驗(yàn)證實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:

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

校驗(yàn)注解:

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

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

注:

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

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

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

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

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

public class UserBean {
  //不為空判斷
  @NotEmpty(message = "用戶名不能為空")
  private String userName;
  //手機(jī)正則驗(yàn)證
  @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;
  //數(shù)值限定大小
  @NotNull(message = "年齡不能為空")
  @Min(message = "你未成年額!",value = 18)
  private Integer age;
  //默認(rèn)匹配所有的正則,需要自己寫匹配規(guī)則,使用里面的regexp參數(shù)
  @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層中對前端傳過來的數(shù)據(jù)與自己寫的驗(yàn)證校驗(yàn)是否正確,使用@Valid開啟對對象進(jìn)行校驗(yàn)。

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

3.在postman中進(jìn)行各種驗(yàn)證,只有當(dāng)所有的都校驗(yàn)成功后,才會往下走。

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

希望本文所述對大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Project?Reactor源碼解析publishOn使用示例

    Project?Reactor源碼解析publishOn使用示例

    這篇文章主要為大家介紹了Project?Reactor源碼解析publishOn使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • SpringBoot 如何實(shí)現(xiàn)Session共享

    SpringBoot 如何實(shí)現(xiàn)Session共享

    這篇文章主要介紹了SpringBoot 如何實(shí)現(xiàn)Session共享,幫助大家更好的理解和學(xué)習(xí)spring boot框架,感興趣的朋友可以了解下
    2020-09-09
  • 使用IDEA啟動項(xiàng)目遇見ClassNotFoundException的解決方案

    使用IDEA啟動項(xiàng)目遇見ClassNotFoundException的解決方案

    這篇文章主要介紹了使用IDEA啟動項(xiàng)目遇見ClassNotFoundException的正確解決方案,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 在Spring Boot中實(shí)現(xiàn)HTTP緩存的方法

    在Spring Boot中實(shí)現(xiàn)HTTP緩存的方法

    緩存是HTTP協(xié)議的一個強(qiáng)大功能,但由于某些原因,它主要用于靜態(tài)資源,如圖像,CSS樣式表或JavaScript文件。本文重點(diǎn)給大家介紹在Spring Boot中實(shí)現(xiàn)HTTP緩存的方法,感興趣的朋友跟隨小編一起看看吧
    2018-10-10
  • 使用filebeat收集并解析springboot日志過程示例

    使用filebeat收集并解析springboot日志過程示例

    這篇文章主要為大家介紹了使用filebeat收集并解析springboot日志實(shí)現(xiàn)過程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • spring mvc 和ajax異步交互完整實(shí)例代碼

    spring mvc 和ajax異步交互完整實(shí)例代碼

    本篇文章主要介紹了spring mvc 和ajax異步交互完整實(shí)例代碼,簡單的AJAX+SpringMVC的異步交互小例子,有興趣的可以了解一下。
    2017-02-02
  • Spring框架通過工廠創(chuàng)建Bean的三種方式實(shí)現(xiàn)

    Spring框架通過工廠創(chuàng)建Bean的三種方式實(shí)現(xiàn)

    這篇文章主要介紹了Spring框架通過工廠創(chuàng)建Bean的三種方式實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Java實(shí)現(xiàn)給圖片添加圖片水印,文字水印及馬賽克的方法示例

    Java實(shí)現(xiàn)給圖片添加圖片水印,文字水印及馬賽克的方法示例

    這篇文章主要介紹了Java實(shí)現(xiàn)給圖片添加圖片水印,文字水印及馬賽克的方法,涉及java針對圖片的讀取、水印添加、馬賽克設(shè)置等相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • SpringBoot數(shù)據(jù)訪問的實(shí)現(xiàn)

    SpringBoot數(shù)據(jù)訪問的實(shí)現(xiàn)

    本文主要介紹了SpringBoot數(shù)據(jù)訪問的實(shí)現(xiàn),引入各種xxxTemplate,xxxRepository來簡化我們對數(shù)據(jù)訪問層的操作,感興趣的可以了解一下
    2023-11-11
  • springboot數(shù)據(jù)庫密碼加密的配置方法

    springboot數(shù)據(jù)庫密碼加密的配置方法

    這篇文章主要給大家介紹了關(guān)于springboot數(shù)據(jù)庫密碼加密的配置方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評論

大城县| 清丰县| 佛学| 南投市| 化州市| 安多县| 米易县| 台南县| 江城| 卓尼县| 共和县| 迁安市| 高淳县| 二连浩特市| 乾安县| 南城县| 文登市| 集贤县| 巨鹿县| 白朗县| 林周县| 井研县| 昌邑市| 海伦市| 宜兰市| 镇坪县| 深圳市| 蛟河市| 略阳县| 婺源县| 阿瓦提县| 洛浦县| 辉县市| 泗阳县| 岑巩县| 兴化市| 四会市| 崇文区| 云南省| 乐东| 云霄县|