springboot NoHandlerFoundException返回问题

来源:3-6 【总结与作业】关于 ad-eureka 的介绍及作业

慕码人4571193

2021-01-11

老师您好 我的问题是 boot项目中 比如我的后台模块 既有模板引擎也有api 那么我统一异常处理中 比如处理404异常:

  /**
     * 404
     *
     * @return
     */
    @ExceptionHandler(NoHandlerFoundException.class)
    public Object handle(HttpServletRequest request, HttpServletResponse response) {
        if (request.getRequestURI().startsWith("/admin/api")) {
            //这里返回json-提示未登录
            response.setCharacterEncoding("utf-8");
            response.setContentType("application/json; charset=utf-8");
            //这个方法就是返回json对象
            return ResponseUtil.notFound(response);
        }
        if (request.getRequestURI().startsWith("/admin")) {
            //这里重定向登录页面
            return "redirect:/admin/login";
        }
        return null;
    }

如上面代码 我想判断url是"/admin/api"开头的就统一返回json,提示404,否则就是跳转到登录页面,但是json的响应不生效,json的情况还是会提示找不到模板引擎,下面的判断重定向登录页面没问题,请问老师怎么处理呢,谢谢?

写回答

1回答

张勤一

2021-01-11

同学你好:

    你这里的 Handler 类注解应该是 @ControllerAdvice 而不是 @RestControllerAdvice,那么,不生效是肯定的。可以尝试在工程的配置文件中配置看看可不可以生效(需要你查下了),我没有这样的使用经验。


    欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!

1
3
慕码人4571193
解决了 谢谢老师
2021-01-12
共3条回复

Spring Cloud微服务架构 设计实现广告系统

广告营销系统,未来大中型企业的标配

2136 学习 · 927 问题

查看课程