1. 添加config 配置类
package org.fh.config; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.view.json.MappingJackson2JsonView; /** * 说明:错误异常拦截处理 * 作者:FH Admin * from fhadmin.cn */ @Configuration public class ExceptionConfiguration implements HandlerExceptionResolver { @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { ModelAndView mv = new ModelAndView(new MappingJackson2JsonView()); //返回json String exInfo = ex.toString().replaceAll("\n", "<br/>"); boolean status = exInfo.contains("Subject does not have permission"); if(status){ exInfo = "[没有此页面的访问权限]" + exInfo; }else { System.out.println("==============异常开始============="); ex.printStackTrace(); System.out.println("==============异常结束============="); } mv.addObject("exception", exInfo); mv.addObject("result", "exception"); return mv; } }
2. 在逻辑类的方法上抛出异常 throws Exception,比如
/**删除 * @param out * @throws Exception */ @RequestMapping(value="/delete") @RequiresPermissions("autograph:del") @ResponseBody public Object delete() throws Exception{ Map<String,String> map = new HashMap<String,String>(); String errInfo = "success"; //xxxx map.put("result", errInfo); //返回结果 return map; }
3. 前端页面接收异常结果
//发送 post 请求提交保存 $.ajax({ xhrFields: { withCredentials: true }, type: "POST", url: httpurl+'xxxx/delete', data: {tm:new Date().getTime()}, dataType:"json", success: function(data){ if("success" == data.result){ }else if ("exception" == data.result){ alert("模块异常"+data.exception);//显示异常 } } });