问答详情
源自:7-3 SpringBoot配置全局的异常捕获 - 同时兼容web与ajax

抛出一个 Error resolving template template might not exist or might not be accessible 的异常

在ajax的异常处理中,直接返回IMoocJSONResult是不行的,会再抛出一个

Error resolving template template might not exist or might not be accessible 的异常,而不是我们预想的byZero的异常,这时候需要使用MappingJackson2HttpMessageConverter把IMoocJSONResult手动写入 HttpServletResponse中。

 

private static final String ERROR_VIEW = "error";

@Autowired

private MappingJackson2HttpMessageConverter jsonConverter;

   

@ExceptionHandler(value = Exception.class)

public Object error(HttpServletRequest request, HttpServletResponse response, Exception e) throws HttpMessageNotWritableException, IOException {

if(isAjax(request)) {

MyJSONResult result = MyJSONResult.errorException(e.getMessage());

            jsonConverter.write(result, MediaType.APPLICATION_JSON, new ServletServerHttpResponse(response));

            return null;

} else {

ModelAndView mav = new ModelAndView();

mav.addObject("exception",e);

mav.addObject("url", request.getRequestURL());

mav.setViewName(ERROR_VIEW);

return mav;

}

}


提问者:玩蜡笔小破孩 2018-03-21 15:06

个回答

  • 独进青楼
    2020-11-22 22:31:57

    学了了,我就说我的代码一模一样,结果缺不一样

  • 慕码人0176214
    2019-06-19 10:06:11

    一群人自以为懂了,瞎带节奏

  • 慕工程4951446
    2019-04-29 10:13:42

    大佬牛逼,我还郁闷为啥视频的跑得起来呢,还特意从github下载了源码

  • 慕UI3587532
    2019-04-18 10:17:10

    尽信书不如无书,这哥们的是对的。

  • 诺言0时光
    2019-04-15 22:57:17

    老师的虽然跑起来了,但是alert输出的结果不对,然后就不讲了,这哥们的才是对的。

  • 带带小老弟
    2019-01-13 20:57:42

    @RestControllerAdvice

    试试

  • 幼儿园很贵的
    2018-11-10 17:18:02

    https://img4.mukewang.com/5be6a23500011ddf13510426.jpg这个是我的ajax

  • 幼儿园很贵的
    2018-11-10 17:12:56

    我能成功啊 不知道你这个异常怎么来的

  • Ash_Orange
    2018-11-07 16:05:24

    学习了,但是不知道为啥老师的代码能够跑成功,我反复看了几遍以为他加了什么特殊配置,然而并没有找到。。。

  • 慕函数1174211
    2018-09-20 23:20:37

    你是对的。。。


  • 幕布斯9518984
    2018-09-20 11:56:18

    优秀,学习了

  • 慕UI9039644
    2018-03-27 18:08:17

    是的,学习了

  • itachy
    2018-03-22 19:39:24

    不赖、学习了