欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Freemarker中的3種循環(huán)模式

 更新時(shí)間:2023年04月06日 09:54:05   作者:__WanG  
這篇文章主要介紹了Freemarker中的3種循環(huán)模式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Freemarker 3種循環(huán)模式

1. map循環(huán)

舉例:

<#if vo.urlMap??>
?? ?<#list vo.urlMap?keys as key>
?? ??? ?<li>
?? ??? ??? ?<a href="${vo.urlMap[key]!''}" rel="external nofollow" >${key!''}</a>
?? ??? ?</li>
?? ?</#list>
</#if>
  • vo.urlMap?keys: 將map中的key循環(huán)(類似keySet迭代器)
  • 循環(huán)中通過map[key]來取的key對應(yīng)的value
  • 如果需要當(dāng)前循環(huán)下標(biāo), 使用循環(huán)對象_index取即可, 如: key_index

2. list循環(huán)

舉例:

<#list vo.valueList as value>
?? ?<td>${value!''}</td>
</#list>

3. 自定義次數(shù)循環(huán)

舉例:

<!-- 動(dòng)態(tài)長度 ?-->
<#list 0..(nums?number)!0 as i>
?? ?<td>${vo.valueList[i]!''}</td>
</#list>

<!-- 固定長度 ?-->
<#list 1..100 as i>
?? ?<td>${vo.valueList[i]!''}</td>
</#list>

用于配合取出list中的元素(list長度有時(shí)少于預(yù)期, 所以自定義次數(shù))

需要注意的是, 由于循環(huán)次數(shù)和list長度解耦了, 要小心數(shù)組越界,

(可以通過默認(rèn)值的方式避免)

如: ${(vo.valueList[i])!'無'}

將前面整個(gè)用括號(hào)括起來會(huì)自動(dòng)判定每一步是否為null

Freemarker 循環(huán)遍歷數(shù)字

普通的循環(huán)遍歷是這樣:

<#list recordPage.content as record>
<!--do someting-->
</#list>

要是遍歷數(shù)字呢?可以這樣: max 是傳來的值。

<#list 1..max as i>    
  <li><a href="#" rel="external nofollow" >${i}</a></li>
</#list>

但是如果這樣寫 -->     <#list 1..${max} as i>   Freemaker會(huì)報(bào)語法錯(cuò)誤。

當(dāng)時(shí)我的需求是要寫一個(gè)雙層<#list>  外層list遍歷對象,內(nèi)層list需要對象的一個(gè)數(shù)量屬性值來決定這個(gè)對象再次遍歷幾次。

那上面代碼中的max怎么賦值呢,試驗(yàn)了各種情況,只要<#list 1..${max} as i>遍歷數(shù)字時(shí)出現(xiàn)‘${}’,就會(huì)報(bào)錯(cuò)。所以就試驗(yàn)了下不帶 ${} 會(huì)出現(xiàn)什么樣的情況,于是出現(xiàn)了下面的代碼:

<#list allocationCars as allocationCar>
    <#list 1..(allocationCar.qty) as i>
        <td>${allocationCar_index+1} . ${i_index}</td>
      </#list>
</#list>

成功完成需求!

allocationCars 是后臺(tái)傳來的car對象集合,一般我們使用<#list>遍歷后會(huì)用  “ defValue="${(allocationCar.brandId?c)!}"  ”這種方式來獲取遍歷后對象的屬性。

但是又由于<#list>遍歷數(shù)字時(shí)候得語法限制,給max賦值的地方無法使用 ‘${}’ 。而經(jīng)過上面的實(shí)驗(yàn)得知,在<#list> 標(biāo)簽中獲取對象的屬性是不需要加‘${}’的,可以直接獲取到,看來應(yīng)該是freemaker的內(nèi)部機(jī)制進(jìn)行了處理。

總結(jié)

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

相關(guān)文章

  • Java 高并發(fā)六:JDK并發(fā)包2詳解

    Java 高并發(fā)六:JDK并發(fā)包2詳解

    本文主要介紹Java高并發(fā)這里整理了詳細(xì)資料,并講解了 1. 線程池的基本使用 2. 擴(kuò)展和增強(qiáng)線程池 3. ForkJoin的知識(shí),有興趣的小伙伴可以參考下
    2016-09-09
  • SpringBoot整合Netty的流程步驟

    SpringBoot整合Netty的流程步驟

    Netty是一個(gè)基于Java的開源網(wǎng)絡(luò)應(yīng)用框架,它提供了高性能、異步事件驅(qū)動(dòng)的網(wǎng)絡(luò)編程能力,Netty旨在幫助開發(fā)者構(gòu)建高性能、高可靠性的網(wǎng)絡(luò)應(yīng)用程序,本文給大家詳細(xì)介紹了SpringBoot整合Netty的流程步驟,需要的朋友可以參考下
    2023-09-09
  • 詳解spring boot引入外部jar包的坑

    詳解spring boot引入外部jar包的坑

    本篇文章主要介紹了spring boot引入外部jar的坑,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • 詳解如何保證Java本地緩存的一致性

    詳解如何保證Java本地緩存的一致性

    所謂的一致性是指在同時(shí)使用緩存和數(shù)據(jù)庫的場景下,要確保數(shù)據(jù)在緩存與數(shù)據(jù)庫中的更新操作保持同步,那么,怎么保證Java本地緩存的一致性?所以本文將給大家介紹了如何保證Java本地緩存的一致性,需要的朋友可以參考下
    2024-01-01
  • 關(guān)于spring boot中幾種注入方法的一些個(gè)人看法

    關(guān)于spring boot中幾種注入方法的一些個(gè)人看法

    這篇文章主要給大家介紹了關(guān)于spring boot中幾種注入方法的一些個(gè)人看法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 關(guān)于break和continue以及l(fā)abel的區(qū)別和作用(詳解)

    關(guān)于break和continue以及l(fā)abel的區(qū)別和作用(詳解)

    下面小編就為大家?guī)硪黄P(guān)于break和continue以及l(fā)abel的區(qū)別和作用(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • java身份證合法性校驗(yàn)工具類實(shí)例代碼

    java身份證合法性校驗(yàn)工具類實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于java身份證合法性校驗(yàn)工具類的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • IDEA怎么生成UML類圖的實(shí)現(xiàn)

    IDEA怎么生成UML類圖的實(shí)現(xiàn)

    這篇文章主要介紹了IDEA怎么生成UML類圖的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java單元測試Powermockito和Mockito使用總結(jié)

    Java單元測試Powermockito和Mockito使用總結(jié)

    公司單元測試框架選用了Junit 4.12,Mock框架選用了Mockito和PowerMock,本文主要介紹了Java單元測試Powermockito和Mockito使用總結(jié),感興趣的可以了解一下
    2021-09-09
  • java中年月日的加減法使用示例

    java中年月日的加減法使用示例

    這篇文章主要介紹了java中年月日的加減法使用示例的相關(guān)資料,需要的朋友可以參考下
    2023-02-02

最新評論