SpringBoot整合freemarker的講解

2022-10-05 04:15:12 字數 3051 閱讀 4274

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...