1. 程式人生 > 其它 >SpringBoot整合Freemarker模板引擎遇到的(坑)

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的縮寫了

  修改後綴名

訪問成功