freemarker跳轉templates目錄下模版報錯40四、500的問題解決記錄

問題提出

一個SpringBoot項目中,用到了freemarker,以下:
01 用到了ModelAndView.pngspring

用到了ModelAndView,這個數據結構長這個樣子:
02 ModelAndView.png數據結構

model中存放着返回的Map<>數據。app

這是我想返回的視圖模版,存放在templates目錄下面:
03 視圖模版內容很簡單.pngspring-boot

可是,運行以後訪問這個接口,response報錯提示:
04 原報錯提示.pngspa

05 報錯提示翻譯成中文.png

問題探索

首先要了解freemarker的概念:freemarker簡介.net

1.查看是否引入依賴,依賴

有兩個依賴,一個叫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接口

06 freemarker檢索結果.png

2. 查看模版的後綴名和SpringBoot的版本

本條問題解決方案來源:SpringBoot2.2.X用Freemarker出現404

SpringBoot在2.2.X中,已經把原先默認的後綴名.ftl改爲了.ftlh,若是想繼續保持之前的.ftl後綴名,須要在配置文件application.yml中配置一下(或application.properties,修改一下排版格式):

spring:
  freemarker:
    suffix: .ftl
相關文章
相關標籤/搜索