如何在 Spring Boot 中创建自定义错误页面
Posted
技术标签:
【中文标题】如何在 Spring Boot 中创建自定义错误页面【英文标题】:How to create custom error page in spring boot 【发布时间】:2017-10-03 12:42:09 【问题描述】:我从以下网址阅读了参考资料
Customized 404 error page in spring-boot 及其工作。
在上述文档中,他们使用了 .html 页面。但我需要.jsp 页面。
src/
+- main/
+- java/
+- resources/
+- public/
+- error/
| +- 404.html
即。 404.html转404.jsp
有可能吗?
【问题讨论】:
【参考方案1】:是的,这是可能的。
你只需要配置
InternalViewResolver
与 .jsp 扩展名一样。
编辑:
请检查以下示例代码。
private static final String VIEW_RESOLVER_PREFIX = "your/jsp/location";
private static final String VIEW_RESOLVER_SUFFIX = ".jsp";
@Bean
public ViewResolver viewResolver()
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix(VIEW_RESOLVER_PREFIX);
viewResolver.setSuffix(VIEW_RESOLVER_SUFFIX);
return viewResolver;
【讨论】:
谢谢。你能告诉我一个示例配置吗? 'application.properties' 有什么变化吗? 我已经在 'application.properites' 中进行了配置。 spring.mvc.view.prefix=/WEB-INF/Views/spring.mvc.view.suffix=.jsp。错误页面可以是静态 JSP docs.spring.io/spring-boot/docs/current/reference/htmlsingle/…【参考方案2】:您需要首先配置 spring boot 以使用 jsp,因为它不是开箱即用的。在maven pom.xml中,添加如下依赖:
<!-- Need this to compile JSP -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jdt.core.compiler</groupId>
<artifactId>ecj</artifactId>
<version>4.6.1</version>
<scope>provided</scope>
</dependency>
<!-- JSTL for JSP -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
在 application.properties 中:
spring.mvc.view.prefix= /WEB-INF/jsp/
spring.mvc.view.suffix= .jsp
按照我的配置方式,.jsp 文件需要位于 src/main/webapp/WEB-INF/jsp 文件夹中,因此如果需要,请创建它。 假设我创建了一个文件 src/main/webapp/WEB-INF/jsp/error/404.jsp。要从我的控制器访问它,我只是将其称为
return "error/404";
因为spring boot会自动为我添加视图前缀和后缀。
【讨论】:
以上是关于如何在 Spring Boot 中创建自定义错误页面的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring Cloud 中创建自定义 zuul 过滤器
如何在 Angular Material 中创建自定义输入错误