JSF2如何在执行动作监听器时禁用doFilter?

时间:2015-03-31 11:57:56

标签: jsf servlet-filters

我现在遇到了Servlet过滤器的麻烦。我的问题是 - 我想验证每当用户更改url(输入url,redirect,...)时,我会使用Forward dispatcher创建一个简单的过滤器。但是,它会导致另一个问题 - 我每次执行1次动作时都不想做.Filter。例如:单击一个按钮。 我的方法只能满足第一个麻烦。 你有我的问题的解决方案吗?谢谢。

1 个答案:

答案 0 :(得分:0)

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

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;
}