2013-03-14 77 views
3

我正在使用hibernate-validator-4.2.0.Final和JSF 2.1进行bean验证。当我提交页面@NotEmpty, @NotNull,..工作正确,但我的方法,用@AssertTrue注释永远不会被调用。@AssertTrue提交JSF页面时未调用方法

我改变了访问修饰符为public,它更名为getValid,但方法不会被调用..

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

回答

0

的问题是,不是所有的字段由JSF验证,只有那些在我的facelet。

如果我在测试呼叫

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

,所述的isValid方法是triggerd。

1

JSF没有验证全豆通过验证#验证,而是要求验证#validateValue对每个表单字段。这是是否有效表单字段?

+0

不,它不是表单字段。这是问题:-) ty – mp5 2013-03-22 06:39:50