【问题标题】:JSF2 how to disable doFilter when perform action listener?JSF2如何在执行动作监听器时禁用doFilter?
【发布时间】:2015-06-04 18:16:29
【问题描述】:

我现在遇到了 Servlet 过滤器的问题。我的问题是 - 我想验证用户何时更改 url(类型 url,重定向,...),从而我使用 Forward 调度程序创建一个简单的过滤器。但是,这会导致另一个问题 - 我不想每次执行 1 个操作时都进行过滤。例如:单击一个按钮。 我的方法只满足第一个麻烦。 您对我的问题有解决方案吗?谢谢。

【问题讨论】:

    标签: jsf servlet-filters


    【解决方案1】:

    您可以使用以下代码检查事件源:

    String[] eventSource = request.getParameterMap().get("javax.faces.source");
    

    eventSource[0] 这里给出了你在 xhtml 上设置的按钮 ID。

    所以在doFilter 方法中,您可以针对该请求执行以下操作来简单地完成过滤器:

    if (eventSource != null && 
        eventSource.length > 0 &&
        eventSource[0].equals("myButtonId"))
    {
        chain.doFilter();
        return;
    }
    

    【讨论】:

    • 感谢您的快速回复,但请您详细解释一下您的想法。
    • 就是这样,tt_emrah。我稍后会尝试。并且您是否有解决方案仅在用户更改 URL 时进行过滤,这样我们就无法过滤操作?
    • 这是一个不同的问题,请再问一个问题。
    • 好吧,我尝试了另一种方法。我唯一的目的是只在重定向新地址时进行过滤,所以我在网页中执行任何操作之前存储了每个新地址。
    猜你喜欢
    • 2012-01-30
    • 2012-11-01
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    相关资源
    最近更新 更多