jeecg全局异常处理GlobalExceptionResolver修改,改善用户体验度

来源:互联网 发布:python 抓取淘宝图片 编辑:程序博客网 时间:2024/06/06 00:20

使用过jeecg的大都知道,对于异常处理,无需开发者自己捕获异常,只需要抛出即可,jeecg会在GlobalExceptionResolver做统一处理

对于本项目来说,查看代码,发现所有的异常都被抛到页面上了,这种对于用户体验度非常不好,系统使用过程中如果出现异常,界面出现一串串

堆栈异常算是怎么回事,因此,就需要对这些异常进行处理,给用户一个友好的错误界面


原来的想法是,直接写一个新的页面,加图片,文字,给用户提示性信息,结果发现,


非ajax的倒是没有什么问题,打开Tab页,如果后台有异常,则直接跳转到错误页面,

但是只要是ajax请求的,jeecg都会在界面出现一个弹窗,弹窗里面是

1.错误页面返回的数据信息,一大串json字符串,

2.我自定义的错误页面信息

3.额,一个确定按钮

(额,就下面这个,我截取了头和尾巴)(丑陋的弹窗框,根本无法直视)



找了大半天,发现是这块syutil.js中如下方法

$.ajaxSetup({type : 'POST',error : function(XMLHttpRequest, textStatus, errorThrown) {debugger;$.messager.progress('close');//window.location.href="xxxxxxx.do?error";$.messager.alert('错误', XMLHttpRequest.responseText);//$(".messager-button").remove();}});

找到这了,那就好办了,直接使用location.href让其跳转到错误页面,而不使用easyui的$.messager即可,这样,ajax和非ajax的

错误提示就统一了。


另外,还有jsp页面的异常处理就是在web.xml中这样配置,就不用在每个jsp中单独配置了

  <error-page>    <exception-type>java.lang.Exception</exception-type>    <location>/webpage/common/error.jsp</location>   </error-page>


另外,该界面还需要实现一个功能,就是在5秒内,或者用户点击返回上一页,使用history.go(-1)类似的这种方式,发现无法实现,

点击回到上一页就回到登录页,要么就是回到空页面,其实这种系统,完全可以使用关闭Tab页的方式回到上一页,因为基本上所以的功能都是打开Tab页,

代码如下

var activeTab = $(window.parent.document).find("div[class='tab-pane active']");if (activeTab && activeTab.length > 0) {tabId = activeTab[0].id;parent.closeTab(tabId);}








原创粉丝点击