您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

JSF / PrimeFaces Ajax请求上的会话超时和ViewExpiredException处理

JSF / PrimeFaces Ajax请求上的会话超时和ViewExpiredException处理

认情况下,ajax请求期间引发的异常在客户端完全没有反馈。仅当在项目阶段设置为Development并使用的情况下运行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。它有一个FullAjaxExceptionHandler出于这样的目的(源代码在这里,展示演示在这里)。

其他 2022/1/1 18:15:19 有363人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶