如何在spring boot中创建自定义错误页面

时间:2017-05-05 06:35:22

标签: java spring jsp spring-mvc spring-boot

我从以下网址

中读取了参考资料

Customized 404 error page in spring-boot 和它的工作。

在上面的文档中,他们使用了.HTML页面。但我需要.jsp页面。

src/
+- main/
   +- java/
   +- resources/
       +- public/
           +- error/
           |   +- 404.html

即。 404.html到404.jsp

有可能吗?

2 个答案:

答案 0 :(得分:0)

是的,这是可能的。

您只需要配置

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;
}

答案 1 :(得分:0)

首先需要配置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会自动为我添加视图前缀和后缀。