0

我正在使用<f:validateWholeBean>标签 (JSF 2.3) 进行类级验证。

验证正确进行,但是,在返回带有验证错误的消息后,表单数据将被删除。

据我所知,这是默认行为,但我想知道是否可以做不同的事情,我希望数据在恢复视图阶段后保持在表单中。我希望用户看到输入错误的信息。

4

1 回答 1

0

我能够通过将<o: validateBean value =" # {bean.product} "/>omnifaces 标记与“validateActual”的方法属性结合使用来解决我的问题。作为文档中的缺点报告的行为对我来说是理想的。

如果由于技术限制无法复制策略,则可以将方法属性设置为“validateActual”。

<o:validateBean value="#{bean.product}" validationGroups="com.example.MyGroup" method="validateActual" />

这将更新模型值并在更新模型值阶段而不是验证阶段之后运行验证。缺点是无效值保留在模型中,并且无论如何都会调用操作方法。您需要在操作方法中对 FacesContext.isValidationFailed() 进行额外检查,以查看它是否失败。

http://showcase.omnifaces.org/validators/validateBean

于 2018-03-15T02:36:40.657 回答