看来JSF 2.0并没有调用“类级别约束”。引用自一个所以答案 https://stackoverflow.com/a/9213763/1803692
JSF 2.0 不调用类级别验证约束。从JSF 验证: http://www.mastertheboss.com/web-interfaces/293-jsf-validation-tutorial.html?showall=1JSF 2 提供了与 JSR-303 约束的内置集成。当您在应用程序中使用 Bean 验证时,JSF 会自动使用 UIInput 值引用的 Bean 的约束。
答案进一步建议使用 SeamFaces 来验证类级别的约束。
不幸的是,这是一个不可选择的选择,因为它引入了一个相当大的依赖项来验证无论如何都应该验证的内容。
我的问题是:
如何让 JSF 验证类级别约束?
控制器中的手动验证非常繁琐,并且有大量重复代码,因此我想避免这种选择。
我尝试通过注释要验证的控制器字段来做到这一点@Valid
,这没有帮助。
I guess应该可以让“流程验证”阶段为我做这件事,或者加入类似于Filter
在“更新模型值”阶段之后,将通过验证集中运行模型值。
在即将推出的 JSF 2.3 之前,JSF 不支持使用 a.o. 进行类级别验证。@Valid
。这是一个永恒的问题,因为有史以来第一个 JSF 规范问题 https://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-1解决这个问题。
您的度假村要么使用已经处理好它的第三方库,要么根据相关开源库的来源自制它(考虑到许可)。
除了接缝面<s:validateForm> http://docs.jboss.org/seam/3/faces/latest/reference/en-US/html/components.html#validateForm你已经找到了,还有OmniFaces<o:validateBean> http://showcase.omnifaces.org/validators/validateBean。与相比的主要区别<s:validateForm>
是它不使用JSF Validator http://docs.oracle.com/javaee/7/api/javax/faces/validator/Validator.html, but a JSR303 ConstraintValidator http://docs.oracle.com/javaee/7/api/javax/validation/ConstraintValidator.html(并且您可以立即掌握整个实体,而无需声明和注释一堆字段,重复实体的属性。
JSF 2.3 支持将以<f:validateWholeBean> http://arjan-tijms.omnifaces.org/p/jsf-23.html#1主要基于 OmniFaces<o:validateBean>
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)