springboot搭配thymeleaf訪問html頁面的時候,什么時候需要自定義前綴和后綴呢
為什么我全部使用默認配置會報錯,必須自己定義前綴和后綴
解析器配置如下:
@Configuration
public?class?WebMvcConfig?extends?WebMvcConfigurerAdapter?implements?ApplicationContextAware?{
????//實現的這個接口能幫助我們設置spring的上下文
????private?ApplicationContext?applicationContext;
????@Override
????public?void?setApplicationContext(ApplicationContext?applicationContext)?throws?BeansException?{
????????????this.applicationContext=applicationContext;
????}
????//對模板資源進行解析(模板資源解析器
????@Bean
????@ConfigurationProperties(prefix?=?"spring.thymeleaf")
????public?SpringResourceTemplateResolver?templateResolver()?{
????????SpringResourceTemplateResolver?templateResolver?=?new?SpringResourceTemplateResolver();
????????templateResolver.setApplicationContext(this.applicationContext);
????????templateResolver.setCharacterEncoding("UTF-8");
????????return?templateResolver;
????}
????@Bean
????public?SpringTemplateEngine?templateEngine(){
????????SpringTemplateEngine?templateEngine=new?SpringTemplateEngine();
????????templateEngine.setTemplateResolver(templateResolver());
????????//設置支持spring?el表達式
????????templateEngine.setEnableSpringELCompiler(true);
????????return?templateEngine;
????}
????//配置視圖解析器
????@Bean
????public?ThymeleafViewResolver?viewResolver(){
????ThymeleafViewResolver?viewResolver=new?ThymeleafViewResolver();
????viewResolver.setTemplateEngine(templateEngine());
????return?viewResolver;
????}
}thymeleaf屬性只配置
控制器代碼為:

啟動項目后,訪問http://localhost:8080/helloword就會報解析thymeleaf錯誤如下

這個報錯真的很懵。求問為什么?
2018-06-22
你如果訪問的是 WEB-INF下面的hello.html頁面,那么你就要添加前綴 ‘/WEB-INF/’和后綴 ‘.html’。因為你在方法中就返回了一個 ‘hello’,不加前綴拼接起來就是:‘ http://localhost:8080/hello’了。