一個SpringBoot項目中,用到了freemarker,以下:
spring
用到了ModelAndView,這個數據結構長這個樣子:
數據結構
model中存放着返回的Map<>數據。app
這是我想返回的視圖模版,存放在templates目錄下面:
spring-boot
可是,運行以後訪問這個接口,response報錯提示:
spa
首先要了解freemarker的概念:freemarker簡介.net
有兩個依賴,一個叫freemarker,一個叫spring-boot-starter-freemarker,根據項目是否爲SpringBoot項目來引入。博主的項目是spring-boot-starter-freemarker,卻引入了freemarker,所以排查了很久。翻譯
freemarker的依賴:code
<!-- https://mvnrepository.com/artifact/org.freemarker/freemarker --> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.28</version> </dependency>
spring-boot-starter-freemarker的依賴:blog
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency>
能夠前往Maven Repository,搜索freemarker,瞭解更詳細的狀況:Maven Repository接口
本條問題解決方案來源:SpringBoot2.2.X用Freemarker出現404
SpringBoot在2.2.X中,已經把原先默認的後綴名.ftl改爲了.ftlh,若是想繼續保持之前的.ftl後綴名,須要在配置文件application.yml中配置一下(或application.properties,修改一下排版格式):
spring: freemarker: suffix: .ftl