【问题标题】:How to create custom error page in spring boot如何在 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

有可能吗?

【问题讨论】:

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


    【解决方案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
    【解决方案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会自动为我添加视图前缀和后缀。

    【讨论】:

      猜你喜欢
      • 2018-02-11
      • 2017-08-07
      • 2014-11-30
      • 2020-10-24
      • 1970-01-01
      • 2015-11-19
      • 1970-01-01
      • 1970-01-01
      • 2015-07-25
      相关资源
      最近更新 更多