激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - Java教程 - JAVA中通過Hibernate-Validation進行參數驗證

JAVA中通過Hibernate-Validation進行參數驗證

2021-08-01 11:55阿泰555 Java教程

這篇文章主要介紹了JAVA中通過Hibernate-Validation進行參數驗證,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

在開發java服務器端代碼時,我們會遇到對外部傳來的參數合法性進行驗證,而hibernate-validator提供了一些常用的參數校驗注解,我們可以拿來使用。

1.maven中引入hibernate-validator對應的jar:

?
1
2
3
4
5
<dependency>
  <groupid>org.hibernate</groupid>
  <artifactid>hibernate-validator</artifactid>
  <version>4.3.1.final</version>
</dependency>

2.在model中定義要校驗的字段:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import javax.validation.constraints.pattern;
import javax.validation.constraints.size;
import org.hibernate.validator.constraints.notempty;
 
public class payrequestdto {
   
  /**
   * 支付完成時間
   **/
  @notempty(message="支付完成時間不能空")
  @size(max=14,message="支付完成時間長度不能超過{max}位")
  private string paytime;
   
  /**
   * 狀態
   **/
  @pattern(regexp = "0[0123]", message = "狀態只能為00或01或02或03")
  private string status;
 
  public string getpaytime() {
    return paytime;
  }
 
  public void setpaytime(string paytime) {
    this.paytime = paytime;
  }
 
  public string getstatus() {
    return status;
  }
 
  public void setstatus(string status) {
    this.status = status;
  }
}

3.定義validation工具類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.util.set;
import javax.validation.constraintviolation;
import javax.validation.validation;
import javax.validation.validator;
import org.hibernate.validator.hibernatevalidator;
import com.atai.framework.lang.appexception;
public class validationutils {
  
  /**
   * 使用hibernate的注解來進行驗證
   *
   */
  private static validator validator = validation
      .byprovider(hibernatevalidator.class).configure().failfast(true).buildvalidatorfactory().getvalidator();
  /**
   * 功能描述: <br>
   * 〈注解驗證參數〉
   *
   * @param obj
   * @see [相關類/方法](可選)
   * @since [產品/模塊版本](可選)
   */
  public static <t> void validate(t obj) {
    set<constraintviolation<t>> constraintviolations = validator.validate(obj);
    // 拋出檢驗異常
    if (constraintviolations.size() > 0) {
      throw new appexception("0001", string.format("參數校驗失敗:%s", constraintviolations.iterator().next().getmessage()));
    }
  }
}

4.在代碼中調用工具類進行參數校驗:

?
1
validationutils.validate(requestdto);

以下是對hibernate-validator中部分注解進行描述:

 

@asserttrue 用于boolean字段,該字段只能為true  
@assertfalse 該字段的值只能為false
@creditcardnumber 對信用卡號進行一個大致的驗證
@decimalmax 只能小于或等于該值
@decimalmin 只能大于或等于該值
@digits(integer=,fraction=) 檢查是否是一種數字的整數、分數,小數位數的數字
@email 檢查是否是一個有效的email地址
@future 檢查該字段的日期是否是屬于將來的日期
@length(min=,max=) 檢查所屬的字段的長度是否在min和max之間,只能用于字符串
@max 該字段的值只能小于或等于該值
@min 該字段的值只能大于或等于該值
@notnull 不能為null
@notblank 不能為空,檢查時會將空格忽略
@notempty 不能為空,這里的空是指空字符串
@null 檢查該字段為空
@past 檢查該字段的日期是在過去
@pattern(regex=,flag=) 被注釋的元素必須符合指定的正則表達式
@range(min=,max=,message=) 被注釋的元素必須在合適的范圍內
@size(min=, max=) 檢查該字段的size是否在min和max之間,可以是字符串、數組、集合、map等
@url(protocol=,host,port) 檢查是否是一個有效的url,如果提供了protocol,host等,則該url還需滿足提供的條件
@valid 該注解主要用于字段為一個包含其他對象的集合或map或數組的字段,或該字段直接為一個其他對象的引用,這樣在檢查當前對象的同時也會檢查該字段所引用的對象

 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/atai/p/6943404.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美成人精品一区 | 国产精品爱久久久久久久 | 一级免费大片 | 神秘电影91 | 九九热国产在线 | 国产成人强伦免费视频网站 | 久久99国产精品免费网站 | 欧美四级在线观看 | 欧美成人国产va精品日本一级 | 毛片免费一区二区三区 | 日韩精品一区二区在线播放 | 国产精品久久久久久久久久久久午夜 | 亚洲一区二区网址 | 中文字幕综合 | 日本高清无遮挡 | 97zyz成人免费视频 | 亚洲午夜免费 | 亚洲xxx视频 | 国产成人在线观看网站 | 亚洲一区二区三区精品在线观看 | 欧美日韩大片在线观看 | 成年免费观看视频 | 欧美a级在线免费观看 | 99日韩精品视频 | 免费视频aaa | 亚洲精品成人在线视频 | 欧美不卡在线 | 美女视频网站黄色 | 毛片视频网站在线观看 | 一级黄片毛片免费看 | 视频一区二区中文字幕 | 最新中文字幕第一页视频 | 久久精品一区二区三 | 毛片视频网址 | 狠狠干91 | 久久精品国产99久久6动漫亮点 | 欧美亚洲综合网 | 91成人午夜性a一级毛片 | 爽妇网国产精品 | 欧美黄色小视频 | 国产成人精品免费视频大全最热 |