gpt4 book ai didi

jsf - 验证 JSF 中的类级别 bean 验证约束

转载 作者:行者123 更新时间:2023-12-04 16:36:16 24 4
gpt4 key购买 nike

似乎 JSF 2.0 没有调用“类级别约束”。引用 SO answer

JSF 2.0 doesn't call class level validation constraints. From JSF validation: JSF 2 provides built-in integration with JSR-303 constraints. When you are using bean validation in your application, JSF automatically uses the constraints for beans that are referenced by UIInput values.


答案还建议使用 SeamFaces 来验证类级别的约束。
不幸的是,这是一个不可选项,因为它引入了一个稍微大的依赖,用于验证无论如何应该验证的内容。
我的问题是:
如何让 JSF 验证类级约束?
Controller 中的手动验证很乏味,而且有很多重复的代码,因此我想避免一个选项。
我试图通过使用 @Valid 注释 Controller-Field 来实现这一点,但这没有帮助。
我想应该可以让“流程验证”阶段为我做这件事,或者在“更新模型值”阶段之后 Hook 类似于 Filter 的东西,这将通过验证集中运行模型值。

最佳答案

在即将到来的 JSF 2.3 之前,JSF 不支持使用 a.o. 的类级别验证。 @Valid 。鉴于 very first JSF spec issue ever 解决了这个问题,这是一个永恒的问题。

您的度假村要么使用已经处理过它的 3rd 方库,要么根据相关开源库的来源自制它(考虑到许可)。

除了您已经找到的 SeamFaces <s:validateForm> 之外,还有 OmniFaces <o:validateBean> 。与 <s:validateForm> 相比,主要区别在于它不使用 JSF Validator ,而是使用 JSR303 ConstraintValidator (并且您可以立即使用整个实体,而无需声明和注释一堆字段,重复实体的属性。

JSF 2.3 支持将以 <f:validateWholeBean> 的形式出现,它主要基于 OmniFaces <o:validateBean>

关于jsf - 验证 JSF 中的类级别 bean 验证约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27781202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com