默认情况下,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出于这样的目的(源代码在这里,展示演示在这里)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)