一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产美女做爰免费视频软件 | 国产最新精品视频 | 阿 好深 快点 老师受不了 | 好吊色视频988gao在线观看 | 娇小XXXXX第一次出血 | 精品国产乱码久久久久久免费 | 性派对videos18party | 国产综合成色在线视频 | 麻豆婷婷 | 精品久久久久国产免费 | 九九热视频免费观看 | 亚洲精品一区二区久久这里 | 无人区1免费完整观看 | 操碰97| 九九九久久久 | 国产精品久久国产精品99 | 武侠古典久久亚洲精品 | 给我一个黄色网址 | 99久久国产综合精品1尤物 | 欧美性一级交视频 | 欧美成黑人性猛交xxoo | 亚洲久草 | 日本无遮挡吸乳视频看看 | 99r在线播放| 五月天精品视频播放在线观看 | 亚洲欧美成人综合 | 午夜亚洲福利 | 免费观看视频高清在线 | 免费观看欧美成人h | 男人的私人影院 | 国产精品xxxav免费视频 | 亚洲视频在线观看地址 | 翁公与小莹在客厅激情 | 国产成人一区二区三区在线视频 | 17岁俄罗斯csgo | 51精品 | 性趣味商品推荐 | 久久中文骚妇内射 | 日本视频高清免费观看xxx | 好湿好滑好硬好爽好深视频 | ass亚洲熟妇毛茸茸pics |