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

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

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

1.基礎(chǔ)配置

1.1引入依賴(lài)

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

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

# 是否開(kāi)啟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
#類(lèi)型
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類(lèi)中編寫(xiě)一個(gè)測(cè)試接口用來(lái)測(cè)試使用,編寫(xiě)內(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類(lèi)型數(shù)據(jù),實(shí)體類(lèi)也可使用此格式調(diào)用屬性

/*可直接獲取id對(duì)應(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ù)類(lèi)型必須相同。而且FreeMarker的比較是精確比較,不會(huì)忽略大小寫(xiě)及空格。
3. >(或者gt):大于
4. >=(或者gte):大于等于
5. <(或者lt):小于
6. <=(或者lte):小于等于
注: 上面這些比較運(yùn)算符可以用于數(shù)字和日期,但不能用于字符串。大部分時(shí)候,使用gt比>有更好的效果,因?yàn)镕reeMarker會(huì)把>解釋成標(biāo)簽的結(jié)束字符??梢允褂美ㄌ?hào)來(lái)避免這種

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無(wú)法理解null值

FreeMarker的變量必須賦值,否則就會(huì)拋出異常。而對(duì)于FreeMarker來(lái)說(shuō),null值和不存在的變量是完全一樣的,因?yàn)镕reeMarker無(wú)法理解null值。
FreeMarker提供兩個(gè)運(yùn)算符來(lái)避免空值:
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)文章

最新評(píng)論

高陵县| 芦溪县| 青海省| 额济纳旗| 古田县| 武安市| 沈阳市| 泸州市| 寿宁县| 江永县| 石屏县| 应城市| 左权县| 凯里市| 绥江县| 志丹县| 阿克陶县| 马边| 扎赉特旗| 崇左市| 嵩明县| 长丰县| 棋牌| 蚌埠市| 厦门市| 甘泉县| 磐石市| 灌云县| 井陉县| 景宁| 鄂伦春自治旗| 张掖市| 绥芬河市| 石景山区| 股票| 平远县| 若尔盖县| 锦屏县| 六安市| 图木舒克市| 泾川县|