在Hibernate Validator 4.x中是否有(或第三方实现)交叉字段验证的实现?如果不是,那么实现交叉字段验证器的最简洁方法是什么?
例如,如何使用API来验证两个bean属性是否相等(例如验证密码字段是否与密码验证字段匹配).
在注释中,我希望有类似的东西:
public class MyBean {
@Size(min=6, max=50)
private String pass;
@Equals(property="pass")
private String passVerify;
}
Run Code Online (Sandbox Code Playgroud) 似乎JSF 2.0没有调用"类级别约束".引用SO答案
JSF 2.0不调用类级验证约束.来自JSF验证: JSF 2提供了与JSR-303约束的内置集成.在应用程序中使用bean验证时,JSF会自动使用UIInput值引用的Bean约束.
答案还建议使用SeamFaces来验证类级约束.
不幸的是,这是一个非选择,因为它引入了一个有点大量的依赖,只是为了验证应该验证什么.
我的问题是:
控制器中的手动验证是繁琐的,并且有很多重复的代码,因此我想避免使用它.
我试图通过注释要验证的Controller-Field来做到@Valid这一点,这没有帮助.
我想应该可以让"流程验证"阶段为我做这件事,或者在Filter"更新模型值"阶段之后挂钩类似于a的东西,它将通过验证集中运行模型值.