@AssertTrue提交JSF页面时未调用方法
问题描述:
我正在使用hibernate-validator-4.2.0.Final和JSF 2.1进行bean验证。当我提交页面@NotEmpty, @NotNull
,..工作正确,但我的方法,用@AssertTrue
注释永远不会被调用。@AssertTrue提交JSF页面时未调用方法
我改变了访问修饰符为public,它更名为getValid,但方法不会被调用..
@AssertTrue(message = "test")
private Boolean isValid() {
return ....;
}
答
的问题是,不是所有的字段由JSF验证,只有那些在我的facelet。
如果我在测试呼叫
SomeObject so = new SomeObject();
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
Set<ConstraintViolation<SomeObject>> violations = validator.validate(so);
,所述的isValid方法是triggerd。
答
JSF没有验证全豆通过验证#验证,而是要求验证#validateValue对每个表单字段。这是是否有效表单字段?
不,它不是表单字段。这是问题:-) ty – mp5 2013-03-22 06:39:50