前言:
網上一些朋友分享了關於hibernate-validator的使用方法,但是不是缺少關聯庫信息,就是提供的參考代碼中缺少自定類。
希望我這一篇博客能夠讓你順利的跑出預期的結果。
如果有錯,可以給我留言。
英文好的朋友可以參考官網的getting started。
http://hibernate.org/validator/documentation/getting-started/
一、環境
hibernate-validator庫必須運行的JDK版本為1.6及以上。
二、hibernate-validator庫及依賴
1 classmate-1.3.1.jar 2 hibernate-validator-5.3.1.Final.jar 3 javax.el-2.2.4.jar 4 javax.el-api-2.2.4.jar 5 jboss-logging-3.3.0.Final.jar 6 validation-api-1.1.0.Final.jar
三、假設我們構造了一個Car類
1 public class Car { 2 3 @NotNull 4 private String manufacturer; 5 6 @NotNull 7 @Size(min = 2, max = 14) 8 private String licensePlate; 9 10 @Min(2) 11 private int seatCount; 12 13 public Car(String manufacturer, String licencePlate, int seatCount) { 14 this.manufacturer = manufacturer; 15 this.licensePlate = licencePlate; 16 this.seatCount = seatCount; 17 } 18 19 public String getManufacturer() { 20 return manufacturer; 21 } 22 23 public void setManufacturer(String manufacturer) { 24 this.manufacturer = manufacturer; 25 } 26 27 public String getLicensePlate() { 28 return licensePlate; 29 } 30 31 public void setLicensePlate(String licensePlate) { 32 this.licensePlate = licensePlate; 33 } 34 35 public int getSeatCount() { 36 return seatCount; 37 } 38 39 public void setSeatCount(int seatCount) { 40 this.seatCount = seatCount; 41 } 42 43 }
四、如何校驗呢?我們看看這個測試類
1 public class CarTest { 2 3 public static void main(String[] args) { 4 ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); 5 Validator validator = factory.getValidator(); 6 Car car = new Car(null, "蘇A999999", 1); 7 8 Set<ConstraintViolation<Car>> constraintViolations = validator.validate(car); 9 for (ConstraintViolation<Car> constraintViolation : constraintViolations) 10 System.out.println("錯誤:" + constraintViolation.getMessage()); 11 } 12 }
五、結果如何?
1 十一月 08, 2016 10:31:00 下午 org.hibernate.validator.internal.util.Version <clinit> 2 INFO: HV000001: Hibernate Validator 5.3.1.Final 3 錯誤:不能為null 4 錯誤:最小不能小於2
六、真是簡單易用!雖然這個庫重復“發明”了輪子。
七、你注意到了嗎?結果是自動國際化了的!