我正在使用<f:validateWholeBean>
标签 (JSF 2.3) 进行类级验证。
验证正确进行,但是,在返回带有验证错误的消息后,表单数据将被删除。
据我所知,这是默认行为,但我想知道是否可以做不同的事情,我希望数据在恢复视图阶段后保持在表单中。我希望用户看到输入错误的信息。
我正在使用<f:validateWholeBean>
标签 (JSF 2.3) 进行类级验证。
验证正确进行,但是,在返回带有验证错误的消息后,表单数据将被删除。
据我所知,这是默认行为,但我想知道是否可以做不同的事情,我希望数据在恢复视图阶段后保持在表单中。我希望用户看到输入错误的信息。
我能够通过将<o: validateBean value =" # {bean.product} "/>
omnifaces 标记与“validateActual”的方法属性结合使用来解决我的问题。作为文档中的缺点报告的行为对我来说是理想的。
如果由于技术限制无法复制策略,则可以将方法属性设置为“validateActual”。
<o:validateBean value="#{bean.product}" validationGroups="com.example.MyGroup" method="validateActual" />
这将更新模型值并在更新模型值阶段而不是验证阶段之后运行验证。缺点是无效值保留在模型中,并且无论如何都会调用操作方法。您需要在操作方法中对 FacesContext.isValidationFailed() 进行额外检查,以查看它是否失败。