freemarker和thymeleaf是模板引擎。在早前我們使用struts或者springmvc等框架的時候,使用的都是jsp,jsp的本質其實就是乙個servlet,其中的資料需要在後端進行渲染,然後再在客戶端顯示,效率比較低下。而模板引擎恰恰相反,其中的資料渲染是在客戶端,效率方面比較理想一點。前後端不分離的話用模板引擎比較好,前後端分離的話其實用處並不大很大。spring官方比較推薦的是thymeleaf,其檔案字尾是html。本篇文章我們主要來看看springboot整合freemarker,springboot整合thymeleaf我們將在後面的文章中講解。
先來www.cppcns.com看一下專案檔案目錄:
首先,pom.xml中匯入freemarker的依賴:
org.springframework.boot
spring-boot-starter-freemarker
在application.properties(或yml)配置檔案中加入freemarker相關配置:
# freemarker靜態資源配置
# 設定ftl檔案路徑
spring.freemarker.tempalte-loader-path=classpath:/templates
# 關閉快取,及時重新整理,上線生產環境需要修改為true
spring.freemarker.cache=false
spring.freemarker.charset=utf-8
spring.freemarker.check-template-location=true
spring.freemarker.content-type=text/html
spring.freemarker.expose-request-attributes=true
spring.freemarker.expose-session-attributes=true
spring.freemarker.request-context-attribute=request
spring.freemarker.suffix=.ftl
這裡指定了freemarker檔案的路徑是classpath/templates,在resources資料夾下的templates新建freemarker資料夾,並且在其中新建index.ftl(上面配置檔案中已經指定了freemarker模板的檔案字尾為ftl):
freemarker模板引擎
我們在resources下新建resource.properties:
com.haozz.opensource.name=wangshu
com.haozz.opensource.website=www.haozz.top:18158/
com.haozz.opensource.lang
在springboot啟動類統計目錄下新建utils包,在其中新建resources類(此處使用配置檔案引入相關資料):
package com.haozz.freemarkerdemo.utils;
import org.springframework.boot.context.properties.configurationproperties;
import org.springframework.context.annotation.configuration;
import org.springframework.context.annotation.propertysource;
//表示這個類是乙個讀取配置檔案的類
@configuration
//指定配置的一些屬性,其中的prefix表示字首
@configurationproperties(prefix = "com.haozz.opensource")
//指定所讀取的配置檔案的路徑
@propertysource(value = "classpath:resource.properties")
public class resource
新建controller包,新建freemarkerctrl類:
package com.haozz.freemarkerdemo.controller;
import com.haozz.freemarkerdemo.util程式設計客棧s.resource;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.stereotype.controller;
import org.springframework.ui.modelmap;
import org.springframework.web.bind.annotation.requestmapping;
@controller
@requestmapping(value = "/ftl")
public class freemarkerctrl
}這裡的modelmap就相當於springmvc中的modelandview,其中的很多方法也很類似,ilzcayjycg我們這裡返回的字串就是freemarker模板的路徑,不用寫字尾,因為配置檔案中已經指定了字尾為.ftl
瀏覽器發起請求,得到結果:
這樣,springboot整合freemarker就好了。
我們再來試一下**的形式。
freemarkerctrl中新增方法:
@requestmapping(value ="center")
public string center(modelmap map)
private list parseusers()
return list;
}在resources/templates/freemarker下新建center資料夾,新建center.ftl:
$name
agephone$$
$#list>
瀏覽器請求:
可以看到,在center.ftl中,我們使用了的寫法,這個相當於jstl表示式中的c:foreach。而users集合我們在freemarkerctrl已經初始化了。
總結
springBoot整合dubbo整合專案
傳統spring 整合dubbo,需要繁瑣的編寫一堆堆的 xml 配置檔案 而springboot整合dubbo後,不在需要寫 xml,通過jar包引用,完 成整合,通過註解的形式完成配置。提高我們的開發效率 目錄結構 1 服務層生產者開發 hs ldm server service 1.1新增du...
SpringBoot整合系列 整合Swagger2
io.springfox springfox swagger2 2.7.0 io.springfox springfox swagger ui 2.7.0 一般無配置項,必要時可以新增自定義配置項,在配置類中讀取 swagger2的配置內容僅僅就是需要建立乙個docket例項 configurati...
SpringBoot整合PageHelper外掛程式
springboot整合pagehelper外掛程式的時候主要分為以下幾步?1.在pom.xml中引入依賴 com.github.pagehelper pagehelper spring boot starter 1.2.3 分頁外掛程式 pagehelper.helperdialect mysql...