国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

框架HibernateValidator簡介

2019-11-18 11:36:26
字體:
來源:轉載
供稿:網友

  用Annotations 給類或者類的屬性加上約束(constraint),在運行期檢查屬性值是很優雅的.Hibernate Validator就是這樣的一個框架.該框架是十分輕易的(就像參考文檔中宣稱的那樣),幾乎沒有什么學習曲線,Validator 是一個驗證框架 不需要和Hibernate的其他部分綁定就可以使用,只要在你的項目中添加Hibernate-annotations.jar庫就可以了.那么下面就讓我們看看怎么使用吧.

Person.java
/*
* Created on 2006-1-12 Person.java
* @author
*/
package test.annotation.validator;

import org.hibernate.validator.Length;
import org.hibernate.validator.Min;
import org.hibernate.validator.Valid;
 

//@Serializability  //測試自定義約束
public class Person {

  PRivate String name;
  private int age;
  private Address address;
  
  public Person() {}
  
  @Valid //注重此處
  public Address getAddress() {
    return address;
  }
  public void setAddress(Address address) {
    this.address = address;
  }
  
  @Min(value = 1)
  public int getAge() {
    return age;
  }
  public void setAge(int age) {
    this.age = age;
  }
  
  @Length(min = 4)
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
}


Address.java 類


/*
* Created on 2006-1-12 Address.java
* @author
*/
package test.annotation.validator;

import org.hibernate.validator.Length;
import org.hibernate.validator.Max;
import org.hibernate.validator.Min;

public class Address {

  private String street;
  private int num;
  
  public Address() {}
  
  @Min(value = 1)
  @Max(value = 100)
  public int getNum() {
    return num;
  }
  public void setNum(int num) {
    this.num = num;
  }
  
  @Length(min = 3,max = 8)
  public String getStreet() {
    return street;
  }
  public void setStreet(String street) {
    this.street = street;
  }
}


  上面是兩個用 Validator Annotations 注釋的 類. 每個屬性都用 約束限制了.  下面看看測試的類吧:

TestValidator.java 類
/*
* Created on 2006-1-12
* @author icerain
*/
package test.annotation.validator;

import org.hibernate.validator.ClassValidator;
import org.hibernate.validator.InvalidValue;

public class TestValidator {
  public void test() {
    Address add = new Address();
    add.setNum(0);
    add.setStreet("1");
    
    Person p = new Person();
    p.setAddress(add);
    p.setAge(0);
    p.setName("ice");
    
    /******************Test validator ********/
    // 注重該處只驗證了Person 為了說明 @Valid 注釋的使用
    ClassValidator<Person> classValidator = new ClassValidator<Person> (Person.class);
    InvalidValue[] validMessages = classValidator.getInvalidValues(p);
    for (InvalidValue value : validMessages) {
      
    System.out.println("InvalidValue 的長度是:" + validMessages.length
        +" . 驗證消息是: " + value.getMessage()
        + " . PropertyPath 是:" + value.getPropertyPath()
        +" ./n/t PropertyName 是: " +value.getPropertyName()
        + "Value 是: " + value.getValue()
        +" Bean 是: "+ value.getBean()
        +"/n/t BeanClass 是:" + value.getBeanClass());
    }
  }
  
  public static void main(String[] args) {
    new TestValidator().test();
  }
}




發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 潮安县| 阿拉善右旗| 雅安市| 景东| 全州县| 陆良县| 潞西市| 鲁甸县| 富源县| 高阳县| 公安县| 兰州市| 娄底市| 南华县| 江津市| 溧阳市| 观塘区| 晴隆县| 东辽县| 鹤庆县| 林芝县| 宿州市| 阜城县| 衡山县| 麟游县| 改则县| 中西区| 神池县| 白山市| 隆尧县| 武邑县| 宕昌县| 华池县| 德昌县| 镇原县| 盘山县| 汉中市| 泌阳县| 白朗县| 嵩明县| 黎川县|