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’了。