在 JSF 中验证 class 级 bean 验证约束
Validate class level bean validation constraints in JSF
似乎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 验证类级约束?
在控制器中手动验证是乏味的并且有很多重复的代码,因此我想避免这个选项。
我试图通过注释要使用 @Valid
验证的 Controller-Field 来做到这一点,但这没有帮助。
我 猜测 应该可以让“过程验证”阶段为我做这件事,或者在“更新”之后加入类似于 Filter
的东西模型值”阶段,这将通过验证集中运行模型值。
在即将推出的 JSF 2.3 之前,JSF 不支持使用 a.o 的 class 级别验证。 @Valid
。这是一个永恒的问题,因为 very first JSF spec issue ever 解决了这个问题。
您的度假村正在使用已经处理好它的第 3 方库,或者根据相关开源库的来源自制它(考虑到许可)。
除此之外 SeamFaces <s:validateForm>
which you already found, there's also OmniFaces <o:validateBean>
. The major difference as compared to <s:validateForm>
is that it doesn't use a JSF Validator
, but a JSR303 ConstraintValidator
(并且您可以立即获得整个实体,而无需声明和注释一堆字段,重复实体的属性。
JSF 2.3 支持将以 <f:validateWholeBean>
的形式出现,主要基于 OmniFaces <o:validateBean>
.
似乎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 验证类级约束?
在控制器中手动验证是乏味的并且有很多重复的代码,因此我想避免这个选项。
我试图通过注释要使用 @Valid
验证的 Controller-Field 来做到这一点,但这没有帮助。
我 猜测 应该可以让“过程验证”阶段为我做这件事,或者在“更新”之后加入类似于 Filter
的东西模型值”阶段,这将通过验证集中运行模型值。
在即将推出的 JSF 2.3 之前,JSF 不支持使用 a.o 的 class 级别验证。 @Valid
。这是一个永恒的问题,因为 very first JSF spec issue ever 解决了这个问题。
您的度假村正在使用已经处理好它的第 3 方库,或者根据相关开源库的来源自制它(考虑到许可)。
除此之外 SeamFaces <s:validateForm>
which you already found, there's also OmniFaces <o:validateBean>
. The major difference as compared to <s:validateForm>
is that it doesn't use a JSF Validator
, but a JSR303 ConstraintValidator
(并且您可以立即获得整个实体,而无需声明和注释一堆字段,重复实体的属性。
JSF 2.3 支持将以 <f:validateWholeBean>
的形式出现,主要基于 OmniFaces <o:validateBean>
.