springboot 学习过程中对启动器注册异常处理问题?

新手上路,请多包涵

我的启动器代码
image.png
我的模板代码
image.png
我的控制器代码
image.png
我想要的结果是在启动器里面的代码怎么赋值 error这个变量到我的模版,我别的控制器里面是用ModelAndView这个类进行赋值案例

**ModelAndView view = new ModelAndView();
view.addObject("error", e.toString());
return view;**

然后返回view 模板可以直接显示这个异常信息“error”变量 ,
问题:启动器里面的如何赋值变量,路过的大神可以帮忙讲解一下?你的讲解就是我继续努力学习的方向,谢谢

阅读 996
1 个回答

image.png
可以看一下SimpleMappingExceptionResolver的实现,其实这个类是spring为我们提供的一种默认的HandlerExceptionResolver实现,是不支持自定义传入界面一些变量值的。

可以自己写一个类,覆写resolveException方法,然后将自己覆写的类交给spring托管

@Component
public class MySimpleExceptionResolver implements HandlerExceptionResolver {
    @Override
    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
        ModelAndView result = new ModelAndView();
        if(e instanceof NullPointerException){
            // 针对特殊异常,可做特殊逻辑。
        }
        result.addObject("error",e.toString());
        result.setViewName("error1");
        return result;
    }
}

也可以使用 @ControllerAdvice + @ExceptionHandler来实现,一般多采用这种方式

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏