ftl不存在为真_FreeMarker 处理不存在的变量
FreeMarker不能容忍引用不存在的變量,除非明確地告訴它當(dāng)變量不存在時(shí)如何處理。這里介紹兩種典型的處理方法.
一個(gè)不存在的變量和一個(gè)是null的變量,對(duì)于FreeMarker來說是一樣的。
處理方法一:
不論在哪里引用變量,都可以指定一個(gè)默認(rèn)值來避免變量丟失這種情況,通過在變量名后面跟著一個(gè)!和默認(rèn)值。就像下面的例子,當(dāng)user從數(shù)據(jù)模型中丟失時(shí),模板將會(huì)將user的值表示為字符串”Anonymous”。(若user并沒有丟失,那么模板就會(huì)表現(xiàn)出”Anonymous”不存在一樣):
Welcome ${user!"Anonymous"}!
處理方法二:
當(dāng)然也可以在變量名后面通過放置??來詢問FreeMarker一個(gè)變量是否存在。將它和if指令合并,那么如果user變量不存在的話將會(huì)忽略整個(gè)問候代碼段:
Welcome ${user}!
#if>關(guān)于多級(jí)訪問的變量,比如animals.python.price,書寫代碼:animals.python.price!0,僅當(dāng)animals.python存在而僅僅最后一個(gè)子變量price可能不存在(這種情況下我們假設(shè)價(jià)格是0)。如果animals或者python不存在,那么模板處理過程將會(huì)以“未定義的變量”錯(cuò)誤而停止。為了防止這種情況的發(fā)生,可以這樣來書寫代碼(animals.python.price)!0。這種情況下當(dāng)animals或python不存在時(shí)表達(dá)式的結(jié)果仍然是0。對(duì)于??也是同樣用來的處理這種邏輯的:animals.python.price??對(duì)比(animals.python.price)??來看。
總結(jié)
以上是生活随笔為你收集整理的ftl不存在为真_FreeMarker 处理不存在的变量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java合并整形_Java:合并Inpu
- 下一篇: guid主分区表损坏怎么办_轻钢龙骨隔墙