SpringBoot整合Freemarker模板引擎遇到的(坑)
新增Freemarker場景啟動器
pom檔案引入:
<!-- 引入freeMarker的依賴包. -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
編寫控制層程式碼
注意:這裡需要使用Controller,而不能使用RestController,因為我們要控制頁面的跳轉
編寫模板
在resource目錄下,存在建立SpringBoot專案之後,自動建立的templates資料夾,這個資料夾就是用於存放模板引擎的
在templates下建立Freemarker.ftl檔案字尾名就是FreemarkerTemplate的縮寫
目錄結構:
啟動專案測試及其問題解決
啟動後訪問地址
並沒有想象中的順利,視屏中直接就成功了,我的自然是報錯了
第一次報錯
是,404,應該是快取的原因,執行Maven的Clear命令後重新執行
第二次報錯
是,500
報錯內容
javax.servlet.ServletException: Circular view path [freemarker]: would dispatch back to the current handler URL [/freemarker] again.
Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)
在網上找了好多,都是提示讓我把@Controller改成@RestController的,但是這顯然不是我想要的,因為我要控制頁面的跳轉
解決方案:
終於在一位大佬的提示下,去看了一下SpringBoot的自動裝配關於FreeMarker的原始碼
發現,tm...字尾被改成了.ftlh,最終得出了結果,應該是我用的SpringBoot的版本比較新,所以FreeMarker的字尾變了,應該是改為了FreemarkerTemplateHtml的縮寫了
修改後綴名
訪問成功