gpt4 book ai didi

validation - 在 JSF 中验证字段并抛出异常,但将错误消息附加到另一个字段?

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

我的页面上有一些字段需要交叉验证。但我不希望此验证中的错误显示在 <h:message> 中对于这个领域。

如果我将验证器添加到任何字段,并且验证器抛出异常,则会在 <h:message> 中显示错误对于这个领域。另一方面,如果我想禁止页面提交,我必须抛出异常。仅仅显示一些错误信息是不够的。

所以我在表单上创建了一些隐藏字段,并在那里附加了验证器。这个验证器可以访问我想要验证的字段的 UIComponents,因此它可以验证它们。当验证器抛出异常时,错误显示在 <h:message>用于隐藏字段,我可以将其放置在任何我想要的地方。

一切正常,如果我在要验证的字段之后放置隐藏字段。 (如果我之前提到过,隐藏字段验证会在我的字段的 UIComponents 更新之前触发)。

问题是它很讨厌 :) 有没有更好的方法来做到这一点?

最佳答案

The problem is it's nasty hack :) Is there some better way to do it?



不适用于特定的功能要求。确实,JSF 允许对多个字段的交叉验证进行极少的细粒度控制。

Everything works, if I put hidden field after the fields I want to validate. (If I put it before, hidden field validation is triggered before even UIComponents of my fields are updated).



组件在验证阶段按照组件树中出现的顺序进行处理。如果您在某个时候有 UIInput手头还有待处理,那么你需要通过 UIInput#getSubmittedValue()来抓取提交的值.如果它已经被处理过,那么你需要通过 UIInput#getValue()来获取提交(并转换和验证)的值。反而。

所以,如果你把带有验证器的隐藏字段放在待验证组件之后,那么你需要 UIInput#getValue()获取值。如果隐藏字段放在待验证组件之前,那么你需要 UIInput#getSubmittedValue()获取值。

关于validation - 在 JSF 中验证字段并抛出异常,但将错误消息附加到另一个字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4439716/

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