1. 程式人生 > >freemarker中list常用處理方法

freemarker中list常用處理方法

在freemarker中list是經常用到的

比如在頁面中需要有個單純的遍歷(以年度為例),無需呼叫任何資料,很方便

程式碼:

這樣會遇到一個問題,當資料超過3位的時候,freemarker會自動用逗號擷取 格式如:2,008

如何解決呢?

1> 加.toString(),如:${(userId).toString()}
2> 加?c,如:${(userId)?c}
3> freemarker配置檔案freemarker.properties加上number_format=#

判斷是否為空:

1.<#if xx?exists>

2.<#if xx??>

3.<#if xx?default("xxx")>

不然當xxList沒有資料的時候 ,很大很大一個黃頁就等著你了

資料型別轉換:

${xx?string} //字串
${xx?number}//整數
${xx?currency}//小數
${xx?percent}
 //百分比

擷取字串長度:

有的時候我們在頁面中不需要顯示那麼長的字串,比如新聞標題,這樣用下面的列子就可以自定義顯示的長度

lt. <= lte. > gt. >= gte

<#if jstbqkVO.gzdd?length lt 8>
           <a href>${jstbqkVO.gzdd?default("")}</a>
      <#else>
           <a href title="${jstbqkVO.gzdd}">${jstbqkVO.gzdd[0..3]?default("")}...</a>
</#if>

意思就是如果這個字串的長度小於8,那麼就正常顯示,反之則取4位

巢狀list:

很多時候,資料庫裡儲存的都是編號,而頁面上需要顯示的漢字,而且不在一張表裡,看列子

<#list jsskList as jsskVO>

<#list kcList as kcVO>
           <#if kcVO.kch=jsskVO.kch> (kcVO裡有編號和名稱,而jsskVO裡只有編號)
                  ${kcVO.kcm} 
           </#if>
   </#list>

</#list>

排序:

1.升序.sort_by()

<#list list?sort_by("欄位") as x> 
</#list>

2.降序.sort_by()?reverse

<#list list?sort_by("欄位")?reverse as x> 
</#list>

去空格:

${xx?trim}

格式化日期:

${date?string("yyyy-MM-dd HH:mm:ss ")}
${date?string("yyyyMMdd ")}