【问题标题】:isValidationFailed default valueisValidationFailed 默认值
【发布时间】:2012-03-17 11:09:38
【问题描述】:

当验证失败时,方法facesContext.isValidationFailed() 在渲染响应阶段之后会返回什么?在这种情况下,它会为我返回 false

【问题讨论】:

    标签: validation jsf-2


    【解决方案1】:

    只有当 FacesContext#validationFailed() 已被 JSF 验证内部或您自己的代码调用时,它才会返回 true,如下所示:

    FacesContext.getCurrentInstance().validationFailed();
    

    就 JSF 内部代码而言,只有 UIInput#processValidators()UIViewParameter#processValidators() 会在捕获到 ValidatorException 时隐式调用此方法。

    如果它为您返回false,那么您显然是在以非标准方式进行验证。例如在 action 方法中,您应该为此使用真正的Validator

    【讨论】:

    • 在渲染响应阶段之后(在验证失败的情况下),我在输入 selectonemenu 上触发了一个 onchange,它调用了一个 valueChangeListener,我在其中检查了 isValidationFailed 并返回 false,我尝试了 getMessageList()这也返回 0
    • 如果在这种情况下验证失败,我如何签入我的 valueChangeListener?
    • onchange 会触发一个全新的 HTTP 请求。毕竟我认为你实现的特定功能要求是错误的。随意提出一个新问题,在其中详细描述特定的功能需求以及失败尝试的一些相关代码。
    猜你喜欢
    • 2018-09-12
    • 2015-05-22
    • 1970-01-01
    • 2019-07-05
    • 2010-12-05
    • 2012-07-13
    • 2015-06-24
    • 2013-09-24
    • 2021-10-05
    相关资源
    最近更新 更多