我正在开发一个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格式呈现相同的数据(要自定义它,只需添加一个解析为'错误'的视图)。”
所以,它说要添加一个解决错误的视图,这就是我所做的,但它不起作用!!
那么,问题是什么?为什么/错误不起作用?
答案 0 :(得分:1)
您已为/error
添加了视图控制器,而不是视图。然后,这将被Boot自己的控制器覆盖,并带有/error
映射。因此,您将获得默认错误页面。
您需要做的就是提供错误视图。在您使用Thymeleaf时,可以通过创建名为src/main/resources/templates/error.html
的文件来实现。