会话超时和ViewExpiredException处理JSF/PrimeFaces ajax请求
发布时间:2020-12-16 03:18:48 所属栏目:百科 来源:网络整理
导读:我发现这篇文章是非常有用的非ajax请求 How to handle session expiration and ViewExpiredException in JSF 2? 但是当我使用AJAX调用提交时,我不能使用这个。 假设在一个primefaces对话框中,我使用AJAX发出一个post请求,session已经超时了。 我看到我的
我发现这篇文章是非常有用的非ajax请求
How to handle session expiration and ViewExpiredException in JSF 2?
但是当我使用AJAX调用提交时,我不能使用这个。 假设在一个primefaces对话框中,我使用AJAX发出一个post请求,session已经超时了。 如何解决这种情况下,当我发布使用AJAX,我可以将他重定向到我的视图过期的页面和 JSF2 / Primefaces / Glassfish
在ajax请求中抛出的异常默认情况下在客户端完全没有反馈。只有当你运行Mojarra项目阶段设置为开发并使用< f:ajax> ;,那么你会得到一个裸的JavaScript警报与异常类型和消息。但除此之外,在PrimeFaces中,默认情况下没有反馈。不过,您可以在服务器日志和ajax响应(在webbrowser的开发人员工具集的“网络”部分)中看到异常。 你需要实现一个自定义
ExceptionHandler ,当队列中有一个ViewExpiredException时,它基本上完成以下工作:
String errorPageLocation = "/WEB-INF/errorpages/expired.xhtml"; context.setViewRoot(context.getApplication().getViewHandler().createView(context,errorPageLocation)); context.getPartialViewContext().setRenderAll(true); context.renderResponse(); 或者,您可以使用JSF实用程序库OmniFaces.它有一个 也可以看看: > Why use a JSF ExceptionHandlerFactory instead of <error-page> redirection? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |