最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot Freemarker基礎(chǔ)配置與使用方式

 更新時(shí)間:2026年05月15日 11:10:08   作者:孟某人  
文章主要介紹了在Spring Boot項(xiàng)目中使用FreeMarker模板引擎的基礎(chǔ)配置、使用方法和注意事項(xiàng),包括依賴引入、配置文件設(shè)置、數(shù)據(jù)類型調(diào)用、運(yùn)算符支持、時(shí)間格式轉(zhuǎn)換、邏輯表達(dá)式等

1.基礎(chǔ)配置

1.1引入依賴

<!-- 引入freemarker模板引擎的依賴 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

1.2在application.properties配置文件中添加如下配置:

# 是否開啟thymeleaf緩存,本地為false,生產(chǎn)建議為true
spring.freemarker.cache=false
spring.freemarker.charset=UTF-8
spring.freemarker.allow-request-override=false
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.suffix=.ftl
#路徑 .ftl文件就創(chuàng)建在templates下面或者子目錄
spring.freemarker.template-loader-path=classpath:/templates/

2.基礎(chǔ)使用

首先我在controller類中編寫一個(gè)測試接口用來測試使用,編寫內(nèi)容如下

@Controller
public class FreeMarkerController {

    Map<String ,Object> map = new HashMap<>();
    List<Object> list = new ArrayList();
    @GetMapping("/freemaker/{id}/{name}")
    public String demo(@PathVariable("id")String id ,@PathVariable("name") String name,Model model){

        map.clear();
        map.put("id",id);
        map.put("name",name);
        list.add(2);
        list.add(4);
        map.put("aa",null);
        model.addAttribute("map",map);
        model.addAttribute("list",list);
        model.addAttribute("date",new Date());
        return "index";
    }
}

以下所有變量都是有上面接口提供

2.1調(diào)用map類型數(shù)據(jù),實(shí)體類也可使用此格式調(diào)用屬性

/*可直接獲取id對應(yīng)的v值*/
id:${map.id}
name:${map.name}

2.2集合調(diào)用,set集合也可用此格式調(diào)用相應(yīng)的元素

list01:${list[0]}
list02:${list[1]}

2.3,字符串拼接的兩種方法

${"你好啊${map.name}"}
${"你好啊"+map.name}

2.4FreeMarker表達(dá)式中支持“+”、“-”、“*”、“/”、“%”運(yùn)算符

${list[1]+list[0]}
${list[1]-list[0]}
${list[1]*list[0]}
${list[1]/list[0]}
${list[1]%list[0]}

2.5表達(dá)式中支持的比較運(yùn)算符有如下幾種:

1. =(或者==):判斷兩個(gè)值是否相等;
2. !=:判斷兩個(gè)值是否不相等;
注: =和!=可以用作字符串、數(shù)值和日期的比較,但兩邊的數(shù)據(jù)類型必須相同。而且FreeMarker的比較是精確比較,不會(huì)忽略大小寫及空格。
3. >(或者gt):大于
4. >=(或者gte):大于等于
5. <(或者lt):小于
6. <=(或者lte):小于等于
注: 上面這些比較運(yùn)算符可以用于數(shù)字和日期,但不能用于字符串。大部分時(shí)候,使用gt比>有更好的效果,因?yàn)镕reeMarker會(huì)把>解釋成標(biāo)簽的結(jié)束字符??梢允褂美ㄌ?hào)來避免這種

2.6時(shí)間格式轉(zhuǎn)換

${date?string("yyyy-MM-dd")}

2.7支持邏輯表達(dá)式

FreeMarker支持邏輯運(yùn)算但是只支持布爾型邏輯運(yùn)算兩個(gè)值進(jìn)行比較運(yùn)算的的時(shí)候需要添加括號(hào)才能進(jìn)行邏輯運(yùn)算,一般用于指令中
1. &&: 邏輯與;
2. ||:邏輯或;
3. !:邏輯非
邏輯運(yùn)算符只能用于布爾值。

2.8FreeMarker無法理解null值

FreeMarker的變量必須賦值,否則就會(huì)拋出異常。而對于FreeMarker來說,null值和不存在的變量是完全一樣的,因?yàn)镕reeMarker無法理解null值。
FreeMarker提供兩個(gè)運(yùn)算符來避免空值:
1.!運(yùn)算
1.1若是msg不存在不報(bào)異常默認(rèn)空值,若是不使用!會(huì)報(bào)異常<br>
${msg!}
1.2若是存在則輸出,若是不存在則默認(rèn)為abc<br>
${map.a!"abc"}<br>
2.??返回布爾值一般用在指令中下面會(huì)有引用此處不解釋<br>

2.9 if指令

<#if map.aa?? >
    存在
    <#else >
    不存在
</#if>
<br>
<#if (list[0]>=3) >
    優(yōu)秀
    <#elseif (list[0]>=2)>
    良好
    <#else >
    差勁
</#if>

2.10 list指令 遍歷

<#list list as li>
    ${li}<br>
</#list>

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

泸西县| 锦州市| 来宾市| 永善县| 普兰店市| 武乡县| 沿河| 宁都县| 绥宁县| 鹤峰县| 偏关县| 始兴县| 云阳县| 岳阳市| 漠河县| 娱乐| 达日县| 霍州市| 孟连| 寻乌县| 库尔勒市| 河西区| 绥德县| 名山县| 吴川市| 伊宁县| 习水县| 宜城市| 洛川县| 辽中县| 政和县| 漳浦县| 赞皇县| 兴宁市| 北宁市| 兴业县| 遂昌县| 嘉峪关市| 来凤县| 罗定市| 安乡县|