首页 > 解决方案 > Spring 中的 404 错误(java config / no web.xml)

问题描述

尝试在 Web 应用程序中提供自定义 404 错误页面,据我所知,该页面使用 Java Config(因此没有 web.xml)。

我们有以下版本的相关库:spring ("5.1.2.RELEASE")、spring-security ("5.1.1.RELEASE")。

免责声明

我在 StackOverflow 中检查了不同的方法。请不要为 web.xml、Thymeleaf 或 Spring Boot 推荐结果。这不适用。

其中; 我尝试了以下方法:

没有产生预期的结果(即,仍然得到默认的网络服务器布局和错误)。

控制器注释方法

还有一个Initializer类(public class Initializer implements WebApplicationInitializer),它似乎与一些建议的选项(定义herehere)冲突;所以 webapp-init 类没有被修改。

web.xml 方法

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="ROOT" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">

<error-page>
  <error-code>404</error-code>
  <location>/error</location>
</error-page>
<error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/error</location>
</error-page>

</web-app>

404.jsp或文件被放置(目前404.html用于测试目的在以下所有位置):

    src/main/resources
    ├── ...
    ├── error
    │   └── 404.html
    ├── public
    │   ├── 404.html
    │   └── error
    │       └── 404.html
    ├── templates
    │   └── 404.html
    └── ...

    src/main/webapp/WEB-INF/
    ├── error.jsp
    ├── tags
    │   └── ...
    └── views
        ├── 404.html
        ├── 404.jsp
        ├── error.jsp
        └── ...

知道什么是缺失或错误的吗?

标签: javaspringspring-java-configcustom-error-pages

解决方案


阅读 Spring Boot 文档,这对我有用:

  @Bean
   public ErrorPageRegistrar errorPageRegistrar() {
     return registry -> registry.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/index.html"));  }

这相当于 web.xml。


推荐阅读