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