美文网首页
spring boot 异常拦截器全局友提示

spring boot 异常拦截器全局友提示

作者: IT祖师爷 | 来源:发表于2022-04-18 08:41 被阅读0次

 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);//显示异常

                        }

                    }

});           

相关文章

网友评论

      本文标题:spring boot 异常拦截器全局友提示

      本文链接:https://www.haomeiwen.com/subject/osnrertx.html