0

我在页面上有一个p:commandButton。当会话超时并且我单击它时,没有任何反应。日志上不显示任何内容,并且未调用该操作。

我已经阅读了这篇文章这篇关于这个主题的文章。因此,我使用以下代码创建了一个 ExceptionHandler:

Throwable exc = null;
for (final Iterator<ExceptionQueuedEvent> it = getUnhandledExceptionQueuedEvents().iterator(); it.hasNext();) {
    exc = it.next().getContext().getException();
}
return exc;

为了获取异常并将用户重定向到错误页面。然而,迭代器总是空的,所以exc总是null......

4

1 回答 1

0

我发现了问题所在。

实际上,请求被身份验证过滤器拦截。过滤器在会话中找不到用户,因为它已过期,并试图将用户重定向到登录页面。

由于我的过滤器正在使用HttpServletResponse#sendRedirect并且这不适用于 Ajax 调用,因此没有真正发生任何事情。

BalusC 的这个(另一个)完美答案 为我指明了方向。所以,问题解决了!

于 2013-08-16T21:36:57.587 回答