• freemarker的${!}


    1. ${sss!} <#--没有定义这个变量,默认值是空字符串! -->  

    、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

    转自:https://blog.csdn.net/chang_li/article/details/51913105

    在复杂页面上(包含大量判断、日期金额格式化)的页面上,freemarker的性能比使用tag和el的jsp好。

    一、FreeMarker的插值有如下两种类型:1,通用插值${expr};2,数字格式化插值:#{expr}或#{expr;format} 

    [java] view plain copy
     
    1. <pre name="code" class="html">${book.name?if_exists } //用于判断如果存在,就输出这个值   
    2. ${book.name!"xxx"}//默认值xxx   
    3. ${book.date?string('yyyy-MM-dd')} //日期格式   
    4. ${book?string.number} 20 //三种不同的数字格式   
    5. ${book?string.currency} <#-- $20.00 -->   
    6. ${book?string.percent} <#-- 20% -->  
    7. ${.now?datetime}//当前时间戳  
    
    
    
    

    二、FreeMarker提供两个运算符来避免空值:1. !: 指定缺失变量的默认值;2. ??:判断变量是否存在。!运算符有两种用法:variable!或variable!defaultValue。第一种用法不给变量指定默认值,表明默认值是空字符串、长度为0的集合、或长度为0的Map对象。例子:

    [java] view plain copy
     
    1. <pre name="code" class="html"><#-- ${sss} 没有定义这个变量,会报异常! -->  
    2. ${sss!} <#--没有定义这个变量,默认值是空字符串! -->  
    3. ${sss!"abc"} <#--没有定义这个变量,默认值是字符串abc! -->  
    
    

    三、??运算符返回布尔值,如:variable??,如果变量存在,返回true,否则返回false。

    将它和 if 指令合并,那么如果 user 变量不存在的话将会忽略整个问候代码段:

    [java] view plain copy
     
    1. <#if user??><h1>Welcome ${user}!</h1></#if>  



    四、Freemarker中对于javabean的处理跟EL表达式一致,类型可自动转化!非常方便!
    有一点需要注意: ${..}只能用于文本部分作为字符串输出,不能用于判断真假值
    也就是不能这么写:<#if ${isBig}>Wow!</#if> ,应为<#if isBig>Wow!</#if>


    五、对list进行遍历以及if else判断

    [html] view plain copy
     
    1. 1)<table  width="100%">  
    2.     <#list investList as item>  
    3.     <tr>  
    4.         <td align="left" style="50%!important;">  
    5.             ${item.userName}<br>${item.addTime?string("yyyy-MM-ddHH:mm:ss")}  
    6.         </td>  
    7.         <td align="right" style="50% !important;">${item.money?string('0.00')}元<br/>  
    8.             <#if item.tenderType == 0>网站投标  
    9.             <#elseif item.tenderType == 1>自动投标  
    10.             <#elseif item.tenderType == 2>手机投标  
    11.             </#if>  
    12.         </td>  
    13.     </tr>  
    14.     </#list>  
    15. </table>  




    2))

    [html] view plain copy
     
    1. <select name="awardTypeId" class="type">  
    2. <option value="0" selected="selected">全部</option>  
    3. <#if typeList??>  
    4. <#list typeList as type>  
    5. <option value="${type.id!}" >${type.name!}</option>  
    6. </#list>  
    7. </select>  


    3)assign指令用于为该模板页面创建或替换一个顶层变量,

    [html] view plain copy
     
    1. <#assign x="Hello ${user}!">  

    4)

    [html] view plain copy
     
      1. <#if data.list?size > 0>  
  • 相关阅读:
    【每日日报】第四十六天
    jsp动作标识
    JSP注释
    request对象
    Servlet的创建和配置
    基于图书管理系统的浏览
    在JSP中应用JavaBean
    交流会
    基于图书管理系统的改
    基于图书管理系统的增
  • 原文地址:https://www.cnblogs.com/YuyuanNo1/p/9133413.html
Copyright © 2020-2023  润新知