springmvc controller 统一异常处理
来源:互联网 发布:淘宝卖水果需要什么 编辑:程序博客网 时间:2024/06/04 23:25
针对springmvc controller层面有多种统一异常处理方法,包括默认的,自定义的,以及注解配置的。这里我推荐一种自定义异常处理方式,它能够处理ajax调用的异常和普通视图调用的异常(比如jsp)。具体的代码如下:
public class GlobalHandlerExceptionResolver implements HandlerExceptionResolver { private static final Logger logger = LoggerFactory.getLogger(GlobalHandlerExceptionResolver.class); /** * 没有区分是哪种情况的异常 */ @Override public ModelAndView resolveException(HttpServletRequest req, HttpServletResponse resp, Object o, Exception ex) { logger.error(ex.getMessage(), ex); HandlerMethod method = (HandlerMethod) o; // ResponseBody.class注解说明是ajax调用,否则返回视图 if (method.getMethod().isAnnotationPresent(ResponseBody.class)) { try { resp.getWriter().write(ex.getMessage()); resp.getWriter().flush(); resp.getWriter().close(); //这里很重要,否则ajax的readystatus为0 } catch (Exception e) { logger.error(e.getMessage()); } return null; } else { Map<String, String> map = new HashMap<String, String>(); map.put("errorInfo", "服务器异常,异常提示:" + ex.getMessage()); return new ModelAndView("error/error", map); } }}
使用说明在spring配置文件中,配置改异常处理bean,代码如下:
<!-- 控制器异常处理 --> <bean id="exceptionResolver" class="com.***.exceptionhandler.GlobalHandlerExceptionResolver" />
ajax调用处理,异常信息在error中处理,通过response.responseText将异常信息进行提示。
$.ajax({ type: "POST", url: serverContext + "/checkLogin", dataType : "json", data: { "teamName" : $("#teamName").val(), "password" : hex_md5($("#password").val()), }, success: function(response){ var errorInfo = response.errorInfo; if (errorInfo != "ok"){ $("#warn").text(errorInfo).show(); return; }else{ window.location.href = serverContext + "/index"; } }, error: function(response){ $("#warn").text("服务器异常,异常信息:" + response.responseText).show(); return; } })
普通的视图处理,即返回了一个error/error.jsp页面,里面可以使用errorInfo变量进行错误提示。
阅读全文
0 0
- springmvc controller 统一异常处理
- SpringMVC-----SpringMVC统一处理Controller异常
- springmvc统一异常处理
- SpringMVC异常统一处理
- SpringMVC统一异常处理
- springMVC统一异常处理
- springmvc 统一处理异常
- springmvc 统一异常处理
- springmvc 统一异常处理
- springmvc异常统一处理
- springMVC异常统一处理
- SpringMVC异常统一处理
- springMVC异常统一处理
- SpringMVC统一异常处理
- SpringMVC统一异常处理
- springmvc统一异常处理
- springmvc异常统一处理
- SpringMVC-----SpringMVC统一处理Controller返回值
- 【转】js实现复制到剪贴板功能,兼容所有浏览器
- Spring Boot修改端口
- 点击弹出li所在的序列号
- Cache,MemCache,Application,Cookie等其它缓存汇总
- 【转】解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介
- springmvc controller 统一异常处理
- 教育+数据的壁垒
- 动态生成验证码———MVC版
- Android adb devices 发现设备处于offline状态
- @RenderSection,@RenderPage,@RenderBody介绍
- Python 面试问答 Top 25
- 时间格式转换—将后台返回的/Date(1448954018000)/格式转换为正常的时间格式
- 利用枚举展示下拉列表
- SQL测验