zoukankan      html  css  js  c++  java
  • SpringBoot配置404跳转页面的两种方式

    1.情景展示

      当请求不存在时,服务器会报404异常,这对于产品用户来说不够友好。

    2.原因分析

      可以配置404请求错误页来进行友好的错误提示。 

    3.解决方案

      方式一:

    @GetMapping("*")
    public String notFound() {
        // 跳转到404页面所在路径
        return "404";
    }

      这种方式,同样适用于springmvc,所有不存在的请求都会映射到该方法上。

      但是,问题在于如果项目配置了knife4j项目接口文档,对应的请求是:/doc.html,只有在请求该地址时,项目才会运行生成doc.html,不请求就不存在,因为是临时生成的html文件,原本并不存在于项目当中,所以,在生成页面之前,该方法检测到服务器并不存在doc.html,因此跳转到了404.jsp,就这样,永远也访问不到doc.html,我们也就无法使用knife4j了。

      方式二:

      为了解决这个问题,我们就不能再使用方式一了。

      第一步:添加配置类

    /**
     * 错误页
     * @description: ErrorPage(status,path)说明
     * 关于path,既可以重定向具体的html也可以重定向请求地址
     * 如果配置的是404.html一定要建在template/static下面,否则无效。
     * 如果配置的是/404,那就需要在Controller中添加/404请求对应的方法
     * @author: Marydon
     * @date: 2020年08月11日 0011 11:25
     */
    @Configuration
    public class ErrorConfig implements ErrorPageRegistrar {
        @Override
        public void registerErrorPages(ErrorPageRegistry registry) {
            ErrorPage[] errorPages = new ErrorPage[1];
            errorPages[0] = new ErrorPage(HttpStatus.NOT_FOUND, "/404.do");
            registry.addErrorPages(errorPages);
        }
    }
    

      第二步:在控制器中添加/404.do请求

    /**
     * 不存在的请求,跳转到404页面
     * @description: ErrorConfig已经拦截了404请求,然后映射到这个请求上
     * @date: 2020年07月10日 0010 17:10
     * @param:
     * @return: java.lang.String
     */
    @GetMapping("/404.do")
    public String notFound() {
        // 跳转到404页面:/jsp/404.jsp
        return "404";
    }  

      需要提醒的是:即将跳转的页面,必须是相对于项目来说的绝对路径。

      上面是因为我配置了响应路径的前缀和后缀,实际是:/jsp/404.jsp。

      2020-12-27

      这里,说一个在idea中的小技巧,要想知道自己配置的文件路径对不对,可以这样:

      按住Ctrl键不松手,鼠标悬浮到要跳转的路径上。

     

      再次点击鼠标,能打开对应页面就说明没有问题。

    写在最后

      哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

     相关推荐:

  • 相关阅读:
    min25筛学习笔记
    【模板】回滚莫队&不删除莫队
    UOJ#188. 【UR #13】Sanrd
    LOJ#572. 「LibreOJ Round #11」Misaka Network 与求和
    Product
    Lcm
    点是否在三角形内的判断
    今天学会了 在Linux下,用GCC编译C语言程序,mark下
    让你沉迷的五种设计
    搞清楚了自发光特效的制作原理,3张图,3个步骤
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/13596710.html
Copyright © 2011-2022 走看看