提交JSF页面时未调用@AssertTrue方法



我使用hibernate-validator-4.2.0的bean验证。Final和JSF 2.1。当我提交页面@NotEmpty, @NotNull时,…工作正确,但我的方法,用@AssertTrue注释从未调用。

我将访问修饰符更改为public,并将其重命名为getValid,但该方法从未被调用过。

@AssertTrue(message = "test")
    private Boolean isValid() {
        return ....;
    }

JSF不是通过Validator#validate来验证一个完整的bean,而是为每个表单字段调用Validator#validateValue。这个isValid是一个表单字段吗?

问题是JSF并不验证所有字段,只验证我的facelets中的字段。

如果我调用

SomeObject so = new SomeObject();
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
        Set<ConstraintViolation<SomeObject>> violations = validator.validate(so);

在测试中,触发isValid方法

相关内容

  • 没有找到相关文章

最新更新