【问题标题】:How to maintain the state after validation? (validateWholeBean)验证后如何保持状态? (验证WholeBean)
【发布时间】:2018-03-14 03:34:18
【问题描述】:

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

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

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

【问题讨论】:

    标签: jsf bean-validation jsf-2.3


    【解决方案1】:

    我能够通过将<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

    【讨论】:

    • 如果有人找到更好的解决方案,请与我分享。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 2019-09-12
    • 2011-06-06
    • 2017-07-04
    • 2020-09-16
    • 2019-10-24
    相关资源
    最近更新 更多