非WEB项目中引入Hibernate Validator
前言:
网上一些朋友分享了关于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
六、真是简单易用!虽然这个库重复“发明”了轮子。
七、你注意到了吗?结果是自动国际化了的!

浙公网安备 33010602011771号