Spring Boot自定义错误页面
来源:互联网 发布:app电玩城源码出售 编辑:程序博客网 时间:2024/05/06 01:16
Spring Boot以一种新的微服务的方式来替代以Spring Framework构建项目的传统方式,我已经计划在后续的项目开发中使用它。它已经帮我们做了90%的工作,剩下10%的工作需要我们自己去完成。对于我来说,自定义错误页面就是其中之一。比如404错误,如果不处理的话,会出现“This application has no explicit mapping for /error, so you are seeing this as a fallback.”的错误信息,如图所示:
Spring Boot默认使用嵌入式Tomcat,默认没有页面来处理404等常见错误。因此,为了给用户最佳的使用体验,404等常见错误需要我们自定义页面来处理。
我们需要用org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer类来实现该功能,在Spring Boot的启动类(main方法所在类)当中,添加如下代码:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
这是使用Java 8的lambda表达式来简化实现的方式,在代码中创建了三个ErrorPage实例来处理三个通用的HTTP错误状态码,并将他们添加到Container当中。ErrorPage类是一个封装了错误信息的类,它可以在Jetty和Tomcat环境下使用。
这是使用Java 7内部类的一个等价实现方式:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
错误页面需要放在Spring Boot web应用的static内容目录下,它的默认位置是:src/main/resources/static,如下图所示:
点击链接下载图中的三个文件的压缩文件,这些文件使用 HTML5 Boilerplate制作。
现在,就可以看到一个简易版本的错误页面,可以根据自己的需要对它进行一些美化。
- Spring Boot自定义错误页面
- Spring Boot自定义错误页面
- Spring Boot自定义错误页面
- spring boot中自定义错误提示页面
- Spring Boot自定义错误页面,Whitelabel Error Page处理方式
- Spring Boot自定义错误页面,Whitelabel Error Page处理方式
- spring boot 自定义403 404 500 等错误页面
- Spring Boot自定义错误页面,Whitelabel Error Page处理方式
- spring security +spring boot 自定义 403 页面
- Spring MVC自定义错误页面
- spring boot 下错误页面处理
- spring boot 下 500 404 错误页面处理
- spring boot 下 500 404 错误页面处理
- spring boot 下 500 404 403错误页面处理
- spring boot 下 500 404 错误页面处理
- spring boot 下 500 404 错误页面处理
- Spring Boot+JSP启动报404错误找不到页面
- Spring Boot学习笔记-错误处理及自定义
- oracle text全文检索
- Web攻击方式以及解决办法
- osx使用cmake编译opencv错误记录
- owindows解决管理员权限问题-----------世界上最简单的解决方法
- 适配iOS 11
- Spring Boot自定义错误页面
- SQL Server定时任务的一些使用场景及方案(一)——日常任务
- 核心如何发表期刊
- do{}while与while()do{}
- Spring mvc中数据在mysql数据库中,数据只能增加成功,不能修改
- 导航栏加载时可能出现闪的原因以及解决办法
- Java数组排序中Comparator接口实现自定义排序
- buntu16.04 源码安装CUDA8.0 tensorflow GPU 踩坑记
- 使用kubeadm安装kubernetes集群