【问题标题】:Can we execute a method before the JSF Validator is triggered?我们可以在 JSF Validator 被触发之前执行一个方法吗?
【发布时间】:2015-07-06 13:50:22
【问题描述】:

是否可以在页面中所有组件的 JSF Validator 执行之前执行任何 java bean 方法?

【问题讨论】:

    标签: validation jsf jsf-2.2


    【解决方案1】:

    您可以使用<f:event> 挂钩PreValidateEvent,如下所示:

    <h:form>
        <f:event type="preValidate" listener="#{bean.preValidate}" />
        ...
    </h:form>
    
    public void preValidate(ComponentSystemEvent event) {
        // ...
    }
    

    【讨论】:

    • 我们能否限制此“PreValidateEvent”事件在单击示例页面中的任何按钮时触发?
    • 仅当您使用 ajax 时。如果为真,只需将其嵌套在感兴趣的命令按钮中,并确保其他按钮不会覆盖&lt;f:ajax execute&gt; 中的该按钮。另一种方法是使用普通验证器并检查其disabled 属性,如果按钮的客户端 ID 存在于请求参数映射中。
    • 这是你说的吗? 什么是替代方法?完全没看懂。
    • 如果您有与当前形式的主要问题无关的新问题,请按“”按钮。如果您继续在答案的 cmets 中修改问题,我很想删除答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 2017-05-06
    • 1970-01-01
    • 2013-07-27
    • 2012-01-28
    • 2023-04-02
    • 1970-01-01
    相关资源
    最近更新 更多