当前位置: 首页 > 知识库问答 >
问题:

用Hibernate验证器验证一个属性

单展
2023-03-14

晚上好,我正在尝试在下面的场景中使用Hibernate验证器:

public class Car {

@NotNull
private String manufacturer;

@NotNull
@Size(min = 2, max = 14)
private String licensePlate;

@Min(2)
private int seatCount;

//setters and getters....
}
public class CarMain {

public static Validator validator;
public static void main(String[] args) {
    ValidatorFactory factory = Validation. buildDefaultValidatorFactory() ;
    validator = factory. getValidator();
    Car car = new Car(null,null,0);
    Set<ConstraintViolation<Car>> st= validator.validate(car);
    while(st.iterator.hasNext()){
        ConstraintViolation<Car> cv = st.iterator.next();
        System.out.println("Value: ("+cv.getInvalidValue()+") -->"+cv.getMessage());
        System.out.println("Attribute: "+cv.getPropertyPath());
    }
}

共有1个答案

夏宪
2023-03-14

validator接口还定义了[validator.validateProperty][1]方法,在该方法中显式指定要验证的属性。请注意,您仍然需要对象实例,并且需要知道要验证的属性。例如,将Bean验证集成到JSF中就使用了这种方法。在您的用例中使用它是否有意义,将取决于您的用例?为什么不想验证整个对象?

另外,还有validator.validateValue,它不需要实际的bean实例。

 类似资料:
  • 我需要应用一个双值验证,这需要与圆周率匹配。我正在考虑使用@pattern(regex=“3.14159265359”)。这是使用Hibernate验证约束应用这样一个约束的最佳方式吗?谢谢

  • 现在,我正在用Spring MVC开发一个web应用程序。 样品值可以是“0.05”、“1.00”、“12.55”等。 因此,如果有任何办法来解决这个问题,请点亮我。谢了。

  • 我正在使用Spring Boot 2.2.0用java bean验证框架构建一个restful服务。Hibernate-Validator在幕后使用。验证工作得很好,但在一个字段与约束不匹配后会引发异常。我想先验证所有字段,然后给消费者一个包含所有错误的响应。这可能吗?

  • 首先,我是Vaadin7的新手。当我发现BeanFieldGroup.class时,我正在尝试一些vaadin演示。正如我所看到的,这个类将一个字段绑定到一个bean属性。在bean中,使用验证约束注释对属性进行注释(JSR303)。在本例中,我的pom.xml包含hibernate验证器依赖项: 我创建了validationmessage.properties文件,并在其中放了一些消息(带有匈牙

  • 这个问题已经被问了很多次了,即使是在经历了所有的解决方案之后,我也无法让hibernate validator工作。 控制器类:- servlet-上下文:- 依赖关系:- 验证类:- 我错过了什么?

  • 我现在把这两者搞混了。我知道Hibernate Validator6是Bean验证2.0规范的参考实现。它支持分组、错误消息国际化、自定义方法验证等。问题是Spring5支持这些特性还是我只剩下Hibernate Validator6了? 网上所有的参考例子都建议使用Hibernate验证器,没有什么关于Spring验证的发现,请建议或指向其他链接。