映射/错误在spring boot中不起作用

时间:2015-08-28 09:48:08

标签: spring spring-mvc spring-boot

我正在开发一个spring boot应用程序,使用boot v 1.2.5,使用thymeleaf作为视图技术

在我的Mvc配置文件

@Configuration
public class MVCConfig extends WebMvcConfigurerAdapter {


@Override
public void addViewControllers(ViewControllerRegistry registry) {
    registry.addViewController("/message").setViewName("message");
    registry.addViewController("/error").setViewName("errors/error");
    registry.addViewController("/login").setViewName("authentication/login");
}

问题是第一个和最后一个映射工作正常,但中间的一个“错误”根本不起作用!!

我使用与其他两个模板相同的规则,相同的前缀,相同的目录结构,所以它应该像其他两个一样工作!! 但是,当我将浏览器指向/ error时,spring boot显示了回退错误页面,表示没有映射/错误

当我将其更改为:  registry.addViewController("/error").setViewName("errors/error");

它适用于/ errors

Spring启动文档说明/错误处理: “对于浏览器客户端,有一个'whitelabel'错误视图,以HTML格式呈现相同的数据(要自定义它,只需添加一个解析为'错误'的视图)。”

所以,它说要添加一个解决错误的视图,这就是我所做的,但它不起作用!!

那么,问题是什么?为什么/错误不起作用?

1 个答案:

答案 0 :(得分:1)

您已为/error添加了视图控制器,而不是视图。然后,这将被Boot自己的控制器覆盖,并带有/error映射。因此,您将获得默认错误页面。

您需要做的就是提供错误视图。在您使用Thymeleaf时,可以通过创建名为src/main/resources/templates/error.html的文件来实现。