返回顶部
首页 > 资讯 > 精选 >SpringBoot自定义错误页面方式有哪些
  • 802
分享到

SpringBoot自定义错误页面方式有哪些

2023-06-21 21:06:44 802人浏览 薄情痞子
摘要

这篇文章主要讲解了“SpringBoot自定义错误页面方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“springBoot自定义错误页面方式有哪些”吧!以前WEB.xml方式先来看下

这篇文章主要讲解了“SpringBoot自定义错误页面方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“springBoot自定义错误页面方式有哪些”吧!

以前WEB.xml方式

先来看下在web.xml中配置错误页面的方式:

<error-page>    <error-code>404</error-code>    <location>/error/404.jsp</location></error-page>

SpringBoot中实现方式

在SpringBoot后,可以通过如下几种方式实现自定义错误页面。

1.实现EmbeddedServletContainerCustomizer的bean

适合内嵌服务器,先在controller中定义我们的错误页面Mapping,通过在配置类中实现EmbeddedServletContainerCustomizer的bean,加入对应状态码的错误页面。注意这种方式在打成war后,供外部Tomcat使用时,将会失效。

定义错误页面:

   @RequestMapping(value = "/error/[code]")    public String error(@PathVariable int code, Model model) {        String pager = "/content/error-pager";        switch (code) {            case 404:                model.addAttribute("code", 404);                pager = "/content/error-pager";                break;            case 500:                model.addAttribute("code", 500);                pager = "/content/error-pager";                break;        }        return pager;    }

在配置类中加入EmbeddedServletContainerCustomizer:

    @Beanpublic EmbeddedServletContainerCustomizer containerCustomizer() {        return container -> {            ErrorPage error404Page = new ErrorPage(httpstatus.NOT_FOUND, "/error/404");            ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/error/500");            container.addErrorPages(error404Page, error500Page);        };

2.通过拦截器方式

适合内嵌Tomcat或者war方式。

@Componentpublic class ErrorPageInterceptor extends HandlerInterceptorAdapter {    private List<Integer> errorCodeList = Arrays.asList(404, 403, 500, 501);    @Override    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws        Exception {       if (errorCodeList.contains(response.getStatus())) {            response.sendRedirect("/error/" + response.getStatus());            return false;        }        return super.preHandle(request, response, handler);    }}

在配置类中添加拦截

@Configurationpublic class WebmvcConfig extends WebMvcConfigurerAdapter { @Override    public void addInterceptors(InterceptorReGIStry registry) {        registry.addInterceptor(errorPageInterceptor);//.addPathPatterns("/action/**", "/mine/**");默认所有        super.addInterceptors(registry);    }}

3.自定义静态error页面方法

在resource/templates下添加error.html页面,springBoot会自动找到该页面作为错误页面,适合内嵌Tomcat或者war方式。

SpringBoot错误视图提供了以下错误属性:

  • timestamp:错误发生时间;

  • status:HTTP状态吗;

  • error:错误原因;

  • exception:异常的类名;

  • message:异常消息(如果这个错误是由异常引起的);

  • errors:BindingResult异常里的各种错误(如果这个错误是由异常引起的);

  • trace:异常跟踪信息(如果这个错误是由异常引起的);

  • path:错误发生时请求的URL路径。

SpringBoot使用的前端框架模板不同,页面的名称也有所不同:

  • 实现Spring的View接口的Bean,其ID需要设置为error(由Spring的BeanNameViewResolver所解析);

  • 如果配置了Thymeleaf,则需命名为error.html的Thymeleaf模板;

  • 如果配置了FreeMarker,则需命名为error.ftl的FreeMarker模板;

  • 如果配置了Velocity,则需命名为error.vm的Velocity模板;

  • 如果是用JSP视图,则需命名为error.jsp的JSP模板。

Thymeleaf实例:

<!DOCTYPE html><html lang="en" xmlns:th="http://www.thymeleaf.org"><head>    <title th:text="${title}"></title></head><body class="layout"><div class="wrap">    <!-- S top -->    <div th:include="/header/module-header::module-header"></div>    <!-- S 内容 -->    <div class="panel-l container clearfix">        <div class="error">            <p class="title"><span class="code" th:text="${status}"></span>非常抱歉,没有找到您要查看的页面</p>            <a href="/" rel="external nofollow"  class="btn-back common-button">返回首页                <img class="loGo-back" src="/img/back.png">            </a>            <div class="common-hint-Word">                <div th:text="${#dates.fORMat(timestamp,'yyyy-MM-dd HH:mm:ss')}"></div>                <div th:text="${messages}"></div>                <div th:text="${error}"></div>            </div>        </div>    </div></div></div></body></html>

对于外部Tomcat第三中方案是比较推荐的一种实现方式,但不够灵活,我们不好定义自己的属性,如果想对其做相应修改,可以参见源码BasicErrorController,通过继承AbstractErrorController,并重写errorHtml方法,达到自己想要的效果。在内嵌Tomcat时,第一种推荐使用,更具灵活性。

感谢各位的阅读,以上就是“SpringBoot自定义错误页面方式有哪些”的内容了,经过本文的学习后,相信大家对SpringBoot自定义错误页面方式有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: SpringBoot自定义错误页面方式有哪些

本文链接: https://lsjlt.com/news/300800.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SpringBoot自定义错误页面方式有哪些
    这篇文章主要讲解了“SpringBoot自定义错误页面方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot自定义错误页面方式有哪些”吧!以前web.xml方式先来看下...
    99+
    2023-06-21
  • SpringBoot多种自定义错误页面方式小结
    目录以前web.xml方式SpringBoot中实现方式1.实现EmbeddedServletContainerCustomizer的bean2.通过拦截器方式3.自定义静态erro...
    99+
    2024-04-02
  • pythonflask自定义404错误页面方式
    目录python flask自定义404错误页面这里有些地方需要注意下 Python Flask捕获异常,捕获404错误,errorhandler(),自定义异常处理函数总...
    99+
    2022-12-21
    python flask flask自定义404页面 自定义404错误页面
  • springboot怎么自定义404、500错误提示页面
    本篇内容介绍了“springboot怎么自定义404、500错误提示页面”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!springboot ...
    99+
    2023-06-21
  • java自定义错误页面实现方法
    java后台自定义错误页面:(推荐:java视频教程)java后台项目中,经常会出现404或500等错误,如果不做设置,服务器会默认返回404或500的错误页面给前端显示错误页面。掌握了错误页面设置,就可以根据业务需要自定义404或500错...
    99+
    2019-01-29
    java
  • springboot自定义404、500错误提示页面的实现
    目录springboot 默认的异常处理机制使用模板引擎使用示例没有使用模板引擎springboot 默认的异常处理机制 springboot 默认已经提供了一套处理异常的机制。一旦...
    99+
    2024-04-02
  • SpringBoot 错误页面跳转方式
    目录SpringBoot错误页面跳转一、新增配置类二、错误页面跳转控制器SpringBoot自定义错误页面一、错误页面二、处理过程SpringBoot错误页面跳转 SpringBoo...
    99+
    2024-04-02
  • Laravel如何自定义500错误页面
    这篇文章主要介绍了Laravel如何自定义500错误页面的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Laravel如何自定义500错误页面文章都会有所收获,下面我们一起来看看吧。Laravel 5.1中500...
    99+
    2023-07-04
  • 如何在uniapp中自定义错误页面
    随着移动互联网的蓬勃发展,手机APP已经成为了人们日常生活的必需品。为了满足用户的需求,APP开发变得越来越繁琐和复杂。像uniapp这样的跨平台开发框架,为开发者提供了更便捷的开发方式。但在使用过程中,我们不可避免地会遇到一些错误或异常情...
    99+
    2023-05-14
  • 如何自定义jsp中的错误页面
    这篇文章主要介绍“如何自定义jsp中的错误页面”,在日常操作中,相信很多人在如何自定义jsp中的错误页面问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何自定义jsp中的错误页面”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-03
  • Nginx error_page自定义错误页面设置过程
    目录Nginx error_page自定义错误页面设置Nginx error_page 使用1. error_page语法2. 实例3. Nginx 自定义404错误页面配置中有无等...
    99+
    2022-12-27
    Nginx error_page 自定义错误页面设置 Nginx自定义错误页
  • web中如何设置自定义503错误页面
    这篇文章将为大家详细讲解有关web中如何设置自定义503错误页面,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、什么是503状态码? 503 Service Unavailable是指由于临时的服务器维...
    99+
    2023-06-12
  • SpringBoot validator参数验证restful自定义错误码响应方式
    目录validator参数验证restful自定义错误码响应一、定义restful统一结果返回二、定义一个错误码枚举三、静态封装CommonResult四、定义BaseControl...
    99+
    2024-04-02
  • html错误页面有哪些类型
    这篇“html错误页面有哪些类型”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“html错误页面有哪些类型”文章吧。一、错误页...
    99+
    2023-07-06
  • SpringBoot@Cacheable自定义KeyGenerator方式
    目录@Cacheable自定义KeyGenerator1. 概述2. MySimpleKey 类3. MyKeyGenerator 类4. 配置keyGeneratorSpring-...
    99+
    2024-04-02
  • SpringBoot怎么定制错误页面及错误数据
    这篇文章主要介绍“SpringBoot怎么定制错误页面及错误数据”,在日常操作中,相信很多人在SpringBoot怎么定制错误页面及错误数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringBoot怎...
    99+
    2023-06-21
  • Springboot错误页面和错误信息定制操作
    目录1、错误页面自定义2、错误数据2.1 默认错误数据2.2 自定义错误数据SpringBoot2.1.4错误处理机制 前面一片已经介绍了springboot错误处理的机制,其实从整...
    99+
    2024-04-02
  • SpringBoot定制三种错误页面及错误数据方法示例
    目录定制错误页面自定义 error.html自定义动态错误页面自定义静态错误页面定制错误数据1. 自定义异常处理类2. 自定义错误属性处理工具我们知道 Spring Boot 已经提...
    99+
    2024-04-02
  • php如何自定义报错页面
    本文操作环境:windows10系统、php 7&&thinkphp 5、thinkpad t480电脑。ThinkPHP 作为一款轻量级的PHP开发框架,拥有丰富的文档,而且相对于其他框架来说更加容易上手。因此我们这里选择...
    99+
    2021-07-28
    php 报错页面
  • Linux中自定义Cinnamon桌面的方法有哪些
    今天小编给大家分享一下Linux中自定义Cinnamon桌面的方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Cin...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作