【freemaker】之判斷是否為空,表達式的使用


測試代碼

    @Test
    public void test05(){
        try {
            freemakerUtil.fprint(root, "05.ftl",fn+"05.html");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

ftl模版文件

<#--加個感嘆號可以解決為空的問題-->
${(emp.group)!}
<#--加上括號,感嘆號解決對象導航為空的問題-->
${(emp.group.name)!"group為空或者name為空"}
<br/>
<#--感嘆號還可以解決未定義為空的問題-->
${(a.b)!("a.b未定義")}
<br/>
<#--(a.b)?? 判斷a.b是否為空-->
<#if (a.b)??>
    不為空
    <#else>
    為空
</#if>
<br/>
${(a.b)???string}

 效果

原文檔的解釋如下: 

在不是頂層變量時,默認值操作符可以有兩種使用方式:

product.color!"red"

如果是這樣的寫法,那么在 product 中,當 color 不存在時(返回 ”red” )將會

被處理, 但是如果連 produce 都不存在時將不會處理。 也就是說這樣寫時變量 product
必須存在,否則模板就會報錯。

(product.color)!"red"

這時,如果當不存在時也會被處理,那就是說如果 product 不存在或者 product
存在而 color 不存在,都能顯示默認值 ”red” 而不會報錯。本例和上例寫法的重要區別
在於用括號時,就允許其中表達式的任意部分可以未定義。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM