我希望有自定义404错误页面。我的类路径中有速度,但我不想使用速度视图解析器 以下是我的代码
@EnableAutoConfiguration(exclude={VelocityAutoConfiguration.class})
@ComponentScan
public class Application {
Properties props = new Properties();
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
我无法将所有404重定向到资源目录中的某些html。
请协助
P.S如果我使用的是velocityresolver并且在模板目录中有error.vm,那么它可以工作。
谢谢你的问候
答案 0 :(得分:11)
您可以提供EmbeddedServletContainerCustomizer
并在那里添加您的(例如静态)错误页面。请参阅spring boot docs中的Error Handling。 E.g:
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return new EmbeddedServletContainerCustomizer() {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/404.html"));
}
};
}
答案 1 :(得分:8)
从Spring Boot 1.4.x
开始:
如果要显示给定状态代码的自定义HTML错误页面,可以将文件添加到
/error
文件夹。错误页面可以是静态HTML(即添加到任何静态资源文件夹下)或使用模板构建。该文件的名称应该是确切的状态代码(例如404
)或系列掩码(例如5xx
)。例如,要将
404
映射到静态HTML文件,您的文件夹结构将如下所示:src/ +- main/ +- java/ | + <source code> +- resources/ +- public/ +- error/ | +- 404.html +- <other public assets>
要使用自由标记模板映射所有
5xx
错误,您将拥有如下结构:src/ +- main/ +- java/ | + <source code> +- resources/ +- template/ +- error/ | +- 5xx.ftl +- <other templates>
查看Spring Boot documentation以获取更详细的讨论。