文档章节

SpringMVC项目 Exception统一管理

 小鱼吃大鱼
发布于 2016/10/20 10:46
字数 229
阅读 12
收藏 1

web.xml:

<error-page>
        <error-code>404</error-code>  
        <location>/WEB-INF/view/exception/404.jsp</location>
    </error-page>
    <error-page>
        <error-code>500</error-code>
        <location>/WEB-INF/view/exception/500.jsp</location>
    </error-page>

BaseController.java

protected final Logger logger = LoggerFactory.getLogger(BaseController.class);
	/** 基于@ExceptionHandler异常处理 */  
    @ExceptionHandler  
    public ModelAndView exp(HttpServletRequest request, HttpServletResponse response,Exception exception) {  
        request.setAttribute("ex", exception);  
        exception.printStackTrace();
     		if (!(request.getHeader("accept").indexOf("application/json") > -1 || (request
     				.getHeader("X-Requested-With") != null && request.getHeader( 
     				"X-Requested-With").indexOf("XMLHttpRequest") > -1))) {  // 判断是否ajax请求
     			Map<String, Object> map = new HashMap<String, Object>();
     			map.put("error",exception.getMessage());
     			exception.printStackTrace();
     			return new ModelAndView("exception/error", map);
     		} else {
     			try {
     				response.setContentType("application/json;charset=UTF-8");
     				PrintWriter writer = response.getWriter();
     				JSONObject jsonObject = new JSONObject();
     				jsonObject.put("error",exception.getMessage());
     				writer.write(jsonObject.toString());
     				writer.flush();
     				writer.close();
     				exception.printStackTrace();
     			} catch (IOException e) {
     				e.printStackTrace();
     			}
     		}
     		return null;
    }  

ajax请求:

$.ajax({
			url : url + "?r=" + (new Date().getTime()),
			dataType : dataType,
			data : data,
			method : "post",
			success : function(ret) {
				if (dataType == 'json') {
					if(ret.error=="" || ret.error==null || ret.error=='undefined'){
						callback.call(this, ret);
					}else{
						layer.open({//layer 弹出框插件 
							  icon: 5,
							  title: '错误提示',
							  content:"糟糕,网页访问出错啦!"
					    })
					}
				} else {
					ret = eval("(" + ret + ")");
					if (ret.success == 'undefined'|| ret.success == undefined) {
							callback.call(this, ret);
					} else {
						if (ret.success == true) {
							callback.call(this, ret);
						} else {
							alert(ret.error);
						}
					}
				}
				unMask(domId);
			},
			error : function(ret, textStatus, errorThrown) {
				unMask(domId);
				alert(ret.responseText);
			}
	})

© 著作权归作者所有

上一篇: SpringMVC 参数注解
下一篇: RESTful 风格
粉丝 4
博文 63
码字总数 32511
作品 0
合肥
私信 提问
使用Spring MVC统一异常处理实战

使用Spring MVC统一异常处理实战 1 描述 在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的、不可预知的异常需...

庸夫俗子
2015/03/05
160
0
想请教一个关于spring exception的问题,如何根据我们抛出的errorcode找到properties中定义好的对应的错误message呢

现在spring mvc exception从spring配置到抛出异常,通过统一异常处理类控制异常跳转界面都已经弄好了,就想给这些异常做个统一的properties文件,来管理异常信息(errorCode = message),可...

guardamo
2013/10/25
162
0
spring 扫描 hibernate 的hbm.xml配置文件 特别慢的问题

在开发的一个项目中,遇到这样的一个问题 框架 SSH hibernate的*.hbm.xml配置文件是由spring统一来扫描管理的。 代码如下: 启动tomcat的时候spring会扫描hbm.xml文件,然后再解析,再进行类...

林纳斯脱袜子
2014/02/21
4K
11
iBase4J-JAVA分布式Web系统

iBas4J项目简介 iBase4J是基于Java的开源框架搭建的分布式系统架构。 使用Maven对项目进行模块化管理,提高项目的易开发性、扩展性。 系统包括两个模块:系统管理模块、调度管理模块、Web展示...

iBase4J
2016/06/15
35
0
基于Spring Security Oauth2的SSO单点登录+JWT权限控制实践

概 述 在前文《基于Spring Security和 JWT的权限系统设计》之中已经讨论过基于 和 的权限系统用法和实践,本文则进一步实践一下基于 实现的多系统单点登录()和 权限控制功能,毕竟这个需求...

CodeSheep
05/07
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

rime设置为默认简体

转载 https://github.com/ModerRAS/ModerRAS.github.io/blob/master/_posts/2018-11-07-rime%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E7%AE%80%E4%BD%93.md 写在开始 我的Arch Linux上......

zhenruyan
今天
4
0
简述TCP的流量控制与拥塞控制

1. TCP流量控制 流量控制就是让发送方的发送速率不要太快,要让接收方来的及接收。 原理是通过确认报文中窗口字段来控制发送方的发送速率,发送方的发送窗口大小不能超过接收方给出窗口大小。...

鏡花水月
今天
8
0
OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
872
10
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部