springmvc统一处理ajax异常
2017-10-10 13:59
363 查看
在xml配置
<!-- 总错误统一处理 -->
<bean id="exceptionResolver" class="com.exception.GlobalExceptionResolver">
<property name="defaultErrorView">
<value>../base/exception/error</value>
</property>
<property name="defaultStatusCode">
<value>500</value>
</property>
<!-- 定义需要特殊处理的异常,用类名或完全路径名作为key,异常也页名作为值 -->
<property name="exceptionMappings">
<props>
<prop key="comNoPermissionException">../base/exception/noPermission</prop>
<prop key="com.NoRolesException">../base/exception/noRoles</prop>
</props>
</property>
</bean>
为了能够对异常进行统一的处理,包括普通请求发生异常以及ajax请求发生异常时,我们可以覆写SimpleMappingHandlerExceptionResolver中的doResolveException()方法,判断是普通请求还是ajax请求。
<!-- 总错误统一处理 -->
<bean id="exceptionResolver" class="com.exception.GlobalExceptionResolver">
<property name="defaultErrorView">
<value>../base/exception/error</value>
</property>
<property name="defaultStatusCode">
<value>500</value>
</property>
<!-- 定义需要特殊处理的异常,用类名或完全路径名作为key,异常也页名作为值 -->
<property name="exceptionMappings">
<props>
<prop key="comNoPermissionException">../base/exception/noPermission</prop>
<prop key="com.NoRolesException">../base/exception/noRoles</prop>
</props>
</property>
</bean>
为了能够对异常进行统一的处理,包括普通请求发生异常以及ajax请求发生异常时,我们可以覆写SimpleMappingHandlerExceptionResolver中的doResolveException()方法,判断是普通请求还是ajax请求。
1: package com.wbl.modal.exception;
2:
3: import org.springframework.web.servlet.ModelAndView;
4: import org.springframework.web.servlet.handler.SimpleMappingExceptionResolver;
5:
6: import javax.servlet.http.HttpServletRequest;
7: import javax.servlet.http.HttpServletResponse;
8: import java.io.IOException;
9: import java.io.PrintWriter;
10:
11: /**
12: * Created by Simple_love on 2015/9/10.
13: */
14: public class GlobalExceptionResolver extends SimpleMappingExceptionResolver {
15:
16: @Override
17: protected ModelAndView doResolveException(HttpServletRequest request,
18: HttpServletResponse response, Object handler, Exception ex){
19: String viewName = determineViewName(ex,request);
20: response.setCharacterEncoding("UTF-8");
21: if (viewName != null) {// JSP格式返回
22: if (!(request.getHeader("accept").contains("application/json") || (request.getHeader("X-Requested-With")!= null && request
23: .getHeader("X-Requested-With").contains("XMLHttpRequest") ))) {
24: // 如果不是异步请求
25: // Apply HTTP status code for error views, if specified.
26: // Only apply it if we're processing a top-level request.
27: Integer statusCode = determineStatusCode(request, viewName);
28: if (statusCode != null) {
29: applyStatusCodeIfPossible(request, response, statusCode);
30: }
31: System.out.println("JSP格式返回" + viewName);
32: return getModelAndView(viewName, ex, request);
33: } else {// JSON格式返回
34: b1db try {
35: PrintWriter writer = response.getWriter();
36: writer.write(ex.getMessage());
37: writer.flush();
38: } catch (IOException e) {
39: e.printStackTrace();
40: }
41: System.out.println("JSON格式返回" + viewName);
42: return null;
43: }
44: } else {
45: return null;
46: }
47: }
48: }
相关文章推荐
- javaweb异常提示信息统一处理(使用springmvc,附源码)
- springmvc 高级3 之 统一异常处理
- javaweb异常提示信息统一处理(使用springmvc,附源码)
- springmvc异常统一处理
- Struts2、Spring MVC4 框架下的ajax统一异常处理
- SpringMVC中Controller使用Validation的参数校验和统一处理参数异常
- 使用springMVC进行统一的异常处理
- springmvc 统一异常处理
- SpringMVC处理普通请求异常以及,ajax异常
- springmvc统一异常处理
- SpringMVC的统一异常处理机制
- springMVC 异常统一处理类
- springmvc异常统一处理
- springmvc统一异常处理
- 【SpringMVC学习07】SpringMVC中的统一异常处理
- SpringMVC 使用注解统一异常处理
- SpringMVC统一异常处理机制
- springmvc 统一处理异常
- SpringMVC异常统一处理
- SpringMVC 统一异常处理入口