精华内容
下载资源
问答
  • ftl 语法

    2018-09-19 19:43:00
    可以通过如下语法来截取子串:   < #assign str = "abcdefghijklmn"/>       // 方法1   ${str?substring(0,4)} // 输出abcd       // 方法2...

    freemaker注释:<#-- 注释内容 -->格式部分,不会输出。

    1、字符输出

    1.  
      ${emp.name?if_exists}      // 变量存在,输出该变量,否则不输出
    2.  
      ${emp.name!}           // 变量存在,输出该变量,否则不输出
    3.  
       
    4.  
      ${emp.name?default("xxx")} // 变量不存在,取默认值xxx
    5.  
      ${emp.name!"xxx"}       // 变量不存在,取默认值xxx

    常用内部函数:

    1.  
      ${"123<br>456"?html}   // 对字符串进行HTML编码,对html中特殊字符进行转义
    2.  
      ${"str"?cap_first}    // 使字符串第一个字母大写
    3.  
      ${"Str"?lower_case} // 将字符串转换成小写
    4.  
      ${"Str"?upper_case} // 将字符串转换成大写
    5.  
      ${"str"?trim} // 去掉字符串前后的空白字符

    字符串的两种拼接方式拼接:

    1.  
      ${"hello${emp.name!}"} // 输出hello+变量名
    2.  
      ${"hello"+emp.name!} // 使用+号来连接,输出hello+变量名

    可以通过如下语法来截取子串:

    1.  
      <#assign str = "abcdefghijklmn"/>
    2.  
       
    3.  
      // 方法1
    4.  
      ${str?substring(0,4)} // 输出abcd
    5.  
       
    6.  
      // 方法2
    7.  
      ${str[0]}${str[4]} // 结果是ae
    8.  
      ${str[1..4]}     // 结果是bcde
    9.  
       
    10.  
      // 返回指定字符的索引
    11.  
      ${str?index_of("n")}

    2、日期输出

    ${emp.date?string('yyyy-MM-dd')} //日期格式

    3、数字输出(以数字20为例)

    1.  
      ${emp.name?string.number}  // 输出20
    2.  
      ${emp.name?string.currency} // ¥20.00
    3.  
      ${emp.name?string.percent} // 20%
    4.  
      ${1.222?int}            // 将小数转为int,输出1
    5.  
       
    6.  
      <#setting number_format="percent"/> // 设置数字默认输出方式('percent',百分比)
    7.  
      <#assign answer=42/>          // 声明变量 answer 42
    8.  
      #{answer}          // 输出 4,200%
    9.  
      ${answer?string}      // 输出 4,200%
    10.  
      ${answer?string.number}   // 输出 42
    11.  
      ${answer?string.currency} // 输出 ¥42.00
    12.  
      ${answer?string.percent}  // 输出 4,200%
    13.  
      #{answer}         // 输出 42
    14.  
      复制代码
    1.  
      数字格式化插值可采用#{expr;format}形式来格式化数字,其中format可以是:
    2.  
      mX:小数部分最小X位
    3.  
      MX:小数部分最大X位
    如下面的例子:
    
    1.  
      <#assign x=2.582/>
    2.  
      <#assign y=4/>
    3.  
      #{x; M2} // 输出2.58
    4.  
      #{y; M2} // 输出4
    5.  
      #{x; m2} // 输出2.58
    6.  
      #{y; m2} // 输出4.0
    7.  
      #{x; m1M2} // 输出2.58
    8.  
      #{x; m1M2} // 输出4.0

    4、申明变量

    1.  
      <#assign foo=false/> // 声明变量,插入布尔值进行显示,注意不要用引号
    2.  
      ${foo?string("yes","no")} // 当为true时输出"yes",否则输出"no"

    申明变量的几种方式

    1.  
      <#assign name=value>
    2.  
      <#assign name1=value1 name2=value2 ... nameN=valueN>
    3.  
      <#assign same as above... in namespacehash>
    4.  
       
    5.  
      <#assign name>
    6.  
      capture this
    7.  
      </#assign>
    8.  
       
    9.  
      <#assign name in namespacehash>
    10.  
      capture this
    11.  
      </#assign>

    5、比较运算符

    表达式中支持的比较运算符有如下几个:
    = 或 == :判断两个值是否相等.
    != :判断两个值是否不等.
    > 或 gt :判断左边值是否大于右边值
    >= 或 gte :判断左边值是否大于等于右边值
    < 或 lt :判断左边值是否小于右边值
    <= 或 lte :判断左边值是否小于等于右边值

    6、算术运算符

    FreeMarker表达式中完全支持算术运算,
    FreeMarker支持的算术运算符包括:+, - , * , / , % 
    注意:
    (1)、运算符两边必须是数字
    (2)、使用+运算符时,如果一边是数字,一边是字符串,就会自动将数字转换为字符串再连接,如:${3 + "5"},结果是:35

    7、逻辑运算符

    逻辑运算符有如下几个:
    逻辑与:&&
    逻辑或:||
    逻辑非:!
    逻辑运算符只能作用于布尔值,否则将产生错误

    8、FreeMarker中的运算符优先级如下(由高到低排列):

    ①、一元运算符:!
    ②、内建函数:?
    ③、乘除法:*, / , %
    ④、加减法:- , +
    ⑤、比较:> , < , >= , <= (lt , lte , gt , gte)
    ⑥、相等:== , = , !=
    ⑦、逻辑与:&&
    ⑧、逻辑或:||
    ⑨、数字范围:..
    实际上,我们在开发过程中应该使用括号来严格区分,这样的可读性好,出错少

    9、if 逻辑判断(注意:elseif 不加空格)

    1.  
      <#if condition>
    2.  
      ...
    3.  
      <#elseif condition2>
    4.  
      ...
    5.  
      <#elseif condition3>
    6.  
      ...
    7.  
      <#else>
    8.  
      ...
    9.  
      </#if>

    if 空值判断

    1.  
      <!-- 当 photoList 不为空时-->
    2.  
      <#if photoList??>...</#if>
    3.  
       
    4.  
      <!--值得注意的是,${..}只能用于文本部分,不能用于表达式,下面的代码是错误的:-->
    5.  
      <#if ${isBig}>Wow!</#if>
    6.  
      <#if "${isBig}">Wow!</#if>
    7.  
       
    8.  
      <!-- 正确写法-->
    9.  
      <#if isBig>Wow!</#if>

    10、switch (条件可为数字,可为字符串)

    1.  
      <#switch value>
    2.  
      <#case refValue1>
    3.  
      ....
    4.  
      <#break>
    5.  
      <#case refValue2>
    6.  
      ....
    7.  
      <#break>
    8.  
      <#case refValueN>
    9.  
      ....
    10.  
      <#break>
    11.  
      <#default>
    12.  
      ....
    13.  
      </#switch>

    11、集合 & 循环

    1.  
      <!-- 遍历集合: -->
    2.  
      <#list empList! as emp>
    3.  
      ${emp.name!}
    4.  
      </#list>
    5.  
       
    6.  
      <!-- 可以这样遍历集合: -->
    7.  
      <#list 0..(empList!?size-1) as i>
    8.  
      ${empList[i].name!}
    9.  
      </#list>
    10.  
       
    11.  
      <!-- 与jstl循环类似,也可以访问循环的状态。 -->
    12.  
       
    13.  
      empList?size    // 取集合的长度
    14.  
      emp_index:     // int类型,当前对象的索引值
    15.  
      emp_has_next: // boolean类型,是否存在下一个对象
    16.  
       
    17.  
      <!-- 使用<#break>跳出循环 -->
    18.  
      <#if emp_index = 0><#break></#if>
    19.  
       
    20.  
      <!-- 集合长度判断 -->
    21.  
      <#if empList?size != 0></#if> <!-- 判断=的时候,注意只要一个=符号,而不是== -->
    22.  
       
    23.  
      <#assign l=0..100/> <!-- 定义一个int区间的0~100的集合,数字范围也支持反递增,如100..2 -->
    24.  
      <#list 0..100 as i>   <!-- 等效于java for(int i=0; i <= 100; i++) -->
    25.  
        ${i}
    26.  
      </#list>
    27.  
       
    28.  
      <!-- 截取子集合: -->
    29.  
      empList[3..5] <!-- 返回empList集合的子集合,子集合中的元素是empList集合中的第4-6个元素 -->
    30.  
       
    31.  
      <!-- 创建集合: -->
    32.  
      <#list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"] as x>
    33.  
       
    34.  
      <!-- 集合连接运算,将两个集合连接成一个新的集合 -->
    35.  
      <#list ["星期一","星期二","星期三"] + ["星期四","星期五","星期六","星期天"] as x>
    36.  
       
    37.  
      <!-- 除此之外,集合元素也可以是表达式,例子如下: -->
    38.  
      [2 + 2, [1, 2, 3, 4], "whatnot"]
    39.  
       
    40.  
      <!-- seq_contains:判断序列中的元素是否存在 -->
    41.  
      <#assign x = ["red", 16, "blue", "cyan"]>
    42.  
      ${x?seq_contains("blue")?string("yes", "no")} // yes
    43.  
      ${x?seq_contains("yellow")?string("yes", "no")} // no
    44.  
      ${x?seq_contains(16)?string("yes", "no")} // yes
    45.  
      ${x?seq_contains("16")?string("yes", "no")} // no
    46.  
       
    47.  
      <!-- seq_index_of:第一次出现的索引 -->
    48.  
      <#assign x = ["red", 16, "blue", "cyan", "blue"]>
    49.  
      ${x?seq_index_of("blue")} <!-- 2 -->
    50.  
       
    51.  
      <!-- sort_by:排序(升序) -->
    52.  
      <#list movies?sort_by("showtime") as movie></#list>
    53.  
       
    54.  
      <!-- sort_by:排序(降序) -->
    55.  
      <#list movies?sort_by("showtime")?reverse as movie></#list>
    56.  
       
    57.  
      <!-- 具体介绍: -->
    58.  
      <!-- 不排序的情况: -->
    59.  
      <#list movies as moive>
    60.  
        <a href="${moive.url}">${moive.name}</a>
    61.  
      </#list>
    62.  
       
    63.  
      <!-- 要是排序,则用 -->
    64.  
      <#list movies?sort as movie>
    65.  
        <a href="${movie.url}">${movie.name}</a>
    66.  
      </#list>
    67.  
       
    68.  
      <!-- 这是按元素的首字母排序。若要按list中对象元素的某一属性排序的话,则用 -->
    69.  
      <#list moives?sort_by(["name"]) as movie>
    70.  
        <a href="${movie.url}">${movie.name}</a>
    71.  
      </#list>
    72.  
       
    73.  
      <!-- 这个是按list中对象元素的[name]属性排序的,是升序,如果需要降序的话,如下所示: -->
    74.  
      <#list movies?sort_by(["name"])?reverse as movie>
    75.  
        <a href="${movie.url}">${movie.name}</a>
    76.  
      </#list>

    12、Map对象

    1.  
      <!-- 创建map -->
    2.  
      <#assign scores = {"语文":86,"数学":78}>
    3.  
       
    4.  
      <!-- Map连接运算符 -->
    5.  
      <#assign scores = {"语文":86,"数学":78} + {"数学":87,"Java":93}>
    6.  
       
    7.  
      <!-- Map元素输出 -->
    8.  
      emp.name // 全部使用点语法
    9.  
      emp["name"] // 使用方括号

    13、FreeMarker支持如下转义字符:

    \" :双引号(u0022)
    \' :单引号(u0027)
    \\ :反斜杠(u005C)
    \n :换行(u000A)
    \r :回车(u000D)
    \t :Tab(u0009)
    \b :退格键(u0008)
    \f :Form feed(u000C)
    \l :<
    \g :>
    \a :&
    \{ :{
    \xCode :直接通过4位的16进制数来指定Unicode码,输出该unicode码对应的字符.

    如果某段文本中包含大量的特殊符号,FreeMarker提供了另一种特殊格式:可以在指定字符串内容的引号前增加r标记,在r标记后的文件将会直接输出.看如下代码:
    ${r"${foo}"} // 输出 ${foo}
    ${r"C:/foo/bar"} // 输出 C:/foo/bar

    14、include指令

    1.  
      // include指令的作用类似于JSP的包含指令:
    2.  
      <#include "/test.ftl" encoding="UTF-8" parse=true>
    3.  
       
    4.  
      // 在上面的语法格式中,两个参数的解释如下:
    5.  
      encoding="GBK" // 编码格式
    6.  
      parse=true    // 是否作为ftl语法解析,默认是true,false就是以文本方式引入,注意:在ftl文件里布尔值都是直接赋值的如parse=true,而不是parse="true"

    15、import指令

    1.  
      // 类似于jsp里的import,它导入文件,然后就可以在当前文件里使用被导入文件里的宏组件
    2.  
      <#import "/libs/mylib.ftl" as my>
    3.  
      // 上面的代码将导入/lib/common.ftl模板文件中的所有变量,交将这些变量放置在一个名为com的Map对象中,"my"在freemarker里被称作namespace

    16、compress 压缩

    1.  
      // 用来压缩空白空间和空白的行
    2.  
      <#compress>
    3.  
      ...
    4.  
      </#compress>

    17、特殊标签

    1.  
      <#t> // 去掉左右空白和回车换行
    2.  
       
    3.  
      <#lt>// 去掉左边空白和回车换行
    4.  
       
    5.  
      <#rt>// 去掉右边空白和回车换行
    6.  
       
    7.  
      <#nt>// 取消上面的效果

    18、escape,noescape 对字符串进行HTML编码

      1.  
        // escape指令导致body区的插值都会被自动加上escape表达式,但不会影响字符串内的插值,只会影响到body内出现的插值,使用escape指令的语法格式如下:
      2.  
        <#escape x as x?html>
      3.  
          First name: ${firstName}
      4.  
        <#noescape>Last name: ${lastName}</#noescape>
      5.  
          Maiden name: ${maidenName}
      6.  
        </#escape>
      7.  
         
      8.  
        // 相同表达式
      9.  
        First name: ${firstName?html}
      10.  
        Last name: ${lastName}
      11.  
        Maiden name: ${maidenName?html}

    转载于:https://www.cnblogs.com/hjy2018/p/9676613.html

    展开全文
  • ftl语法

    2012-08-16 15:52:44
    ftl对空值敏感,如果为空则抛出异常。 1.${} 取值内容摘要:${content.summary} .新版本可用 2. 定义(ftl标签). 新版本可用[# ]  //声明变量,当${content.lastHitDate}不存在时抛出异常  指令  he is ...

    ftl对空值敏感,如果为空则抛出异常。

    1.${} 取值内容摘要:${content.summary} .新版本可用

    2. <#  >  定义(ftl标签). 新版本可用[#  ]

     <#assign lastDate="${content.lastHitDate}"> //声明变量,当${content.lastHitDate}不存在时抛出异常

     <# if>指令

     <#if user=='dayang'> he is dayang </#if> //user可以是模型里的数据:${user},也可以是声明变量

        <#if product.price!=0>price is not 0</#if>

     if .....else

         <#if p[0].price<p[1].price> 小于市场价

      <#else>大于市场价

     </#if>

    <# list>指令

     <#list root.subList[0].productList as product>

          <#if product_index>=5>

              <li><a href="${ctx}/procuct/${product.sid}.html"> ${product.productName?if_exists} </a></li>

              <#if product_index>11> <#break></#if> //跳出循环

          </#if>

     </#list>

     

    <#list topContents as x>
         <#if x_index==0>
               <#assigncontent="${x.content?replace(' ','')}">//声明一个变量并赋值
               <#assign content="${x.content?replace('  ','')}">
               <#assign content="${content?replace('&nbsp;','')}">
               <#assign content="${content?replace('<.*?>','','r')}">
               <h1><a href="#">${x.subTitle}</a></h1>
               <h2><a href="#">&nbsp;&nbsp;&nbsp;&nbsp;
              <#if (content?length > 50) >
                     ${content?substring(0,50)}...
              <#else>
                     ${content}
              </#if>
             </a>[<a href="#">查看全文</a>]
            </h2>     
           <#else>
               <#if x_index==1><ul></#if>
                   <li><a href="#">${x.subTitle}</a></li>
               <#if x_index==topContents?size-1></ul></#if>
            </#if>
        </#list>   

    3.注释

    <#-- 我是注释-->

    4.<@ >宏,自定义标签,新版本可用[@ ]

    二。处理不存在的变量。

    以前:?exists ,?if_exists ,?default

        <#if (root.subList?exists)&& (root.subList?size>0)>

          ${product?if_exixts.originalPrice?if_exists}

    现在:!" " ,??

    ${content.lastHitDate!"为空时显示的值"}//lastDate为空时给content.lastHitDate赋默认值“为空时显示的值”,并显示出来。

    <#if content.lastHitDate??>不为空<#else>我为空1</#if>//lastDate为空时显示“我为空1”

    另一种可行方法:配置文件

     

    三.内置函数。

    ?length  取长度

    ?size 序列中的元素个数  //<#if (channelContent?size>0) ><li>栏目文章列表为空</li> </#if>

    ?substring 取子字符串  //${summary?substring(0,50)} //从索引0开始,长度为50

    ?replace 字符串替换

    ?trim 去掉字符串首尾空格

    ?cap_first :字符串的第一个字母变大写

    ?lower_case :字符串的小写形式

    ?upper_case:字符串的大写形式

    ?html :html转义字符

    ?int 数字的整数部分

    例子:

     ${userName?[0,10]}

       ${appHtml?replace('<@person.component/>' ,"ak47')}

               <#assign content="${x.content?replace('  ','')}">
               <#assign content="${content?replace('&nbsp;','')}">
               <#assign content="${content?replace('<.*?>','','r')}">

     

     

     

    展开全文
  • FTL语法使用

    千次阅读 2016-10-16 14:13:01
    刚刚入职几个月,在上海做了一个页面开发是.FTL的项目,简单的总结了一点最常用的FTL语法使用: FTL语法使用: 注意:使用freemaker,要求所有标签必须闭合,否则会导致freemaker无法解析 1.判断对象是否存在,若...

    刚刚入职几个月,在上海做了一个页面开发是.FTL的项目,简单的总结了一点最常用的FTL语法使用:

    FTL语法使用:
    注意:使用freemaker,要求所有标签必须闭合,否则会导致freemaker无法解析
    1.判断对象是否存在,若成立说明存在 (注意elseif不加空格)
    <#if quote.riskForce ??> </#if>  
    <#if quote.riskForce ??> <#else>  </#if>
    <#if quote.riskForce ??> <#elseif> <#else>  </#if>

    2.判断是否和某一个值相等(先判断是否存在,在判断相等,如果该指定的参数不存在还比较相等的话就会出错) 
    <#if componentId ?? && componentId==1></#if> 

    3.list循环(循环遍历list并给遍历的对象取别名attribute以方便后面对象调用),
    if_exists在调用一个变量需要先判断是否为空不然为空时会出错,_index为取出行号索引从0开始,?size可以判断list大小  
    1.<#list quote.riskItems as item>  ${item.kindCode?if_exists}  ${item_index}  </#list>    {quote.riskItems ?size}
    2. 例如车险项目中取报文返回的各项税率因子:
    <#if returnDto.riskProfits??>
    <#list returnDto.riskProfits as riskProfit>
    <#if riskProfit.rate??>
    <p>${riskProfit.profitName} : ${riskProfit.rate?string("#0.00")}%<p>
    </#if>
    </#list>
    </#if>

    4.变量与指定值相加减,需要先判断该变量是否为数字类型,?number 然后转换为数字类型再做相减运算(变量number与指定的2相减) 
    ${blockWidth?number-2}

    5.日期转换
            时间格式化的方法代码 
            最好加上 判断下c是否存在   
            <#if quote.riskBusi.validateDate??>   
                 ${quote.riskBusi.validateDate?string("yyyy-MM-dd")}  2016-05-21 
            </#if> 
    如果是想要不一样的日期格式项目中是在freemarker.properties中定义日期的形式:datetime_format=yyyy年MM月dd日 HH时mm分

    <#if quote.riskBusi.validateDate??>   
    ${quote.riskBusi.validateDate?datetime("yyyy-MM-dd")}  2016年05月21日 00时00分 
    </#if>

    6.申明变量
    <#assign foo=false/> // 声明变量,插入布尔值进行显示,注意不要用引号
    ${foo?string("yes","no")} // 当为true时输出"yes",否则输出"no"

    申明变量的几种方式
    <#assign name=value> 
    <#assign name1=value1 name2=value2 ... nameN=valueN> 
    <#assign same as above... in namespacehash>

    7.比较运算符

    表达式中支持的比较运算符有如下几个:
    = 或 == :判断两个值是否相等.
    != :判断两个值是否不等.
    > 或 gt :判断左边值是否大于右边值
    >= 或 gte :判断左边值是否大于等于右边值
    < 或 lt :判断左边值是否小于右边值
    <= 或 lte :判断左边值是否小于等于右边值

    8.可以通过如下语法来截取子串:

    <#assign str = "abcdefghijklmn"/>

    // 方法1
    ${str?substring(0,4)}  // 输出abcd

    // 方法2
    ${str[0]}${str[4]}    // 结果是ae
    ${str[1..4]}        // 结果是bcde

    // 返回指定字符的索引
    ${str?index_of("n")}

    9.数字输出(以数字20为例)

    ${emp.name?string.number}     // 输出20
    ${emp.name?string.currency}    // ¥20.00 
    ${emp.name?string.percent}     // 20%
    ${1.222?int}            // 将小数转为int,输出1

    <#setting number_format="percent"/>    // 设置数字默认输出方式('percent',百分比)
    <#assign answer=42/>             // 声明变量 answer 42
    #{answer}             // 输出 4,200%
    ${answer?string}         // 输出 4,200%
    ${answer?string.number}   // 输出 42
    ${answer?string.currency}  // 输出 ¥42.00
    ${answer?string.percent}  // 输出 4,200%
    #{answer}            // 输出 42

    10.Ftl变量转换代码 
    1. ?number转为数字   
    2. ?c转为字符串   
    3. ?string转为字符串   
    4. ?currency(货币)   
    5. ?percent(百分比)   
    6. trim 删除字符串首尾空格 ${“  String ”?trim} 结果为String   
    7. split使用指定的分隔符将一个字符串拆分为一组字符串
    <#list “This|is|split”?split(“|”) as s>   
    ${s}   
    </#list> 

    ${“strabg”?replace(“ab”,”in”)} 结果为string   
    ${“string”?contains(“ing”)?string} 结果为true
       
    注意:
    布尔值必须转换为字符串才能输出  index_of(substring,start)在字符串中查找某个子串,返回找到子串的第一个字符的索引,如果没有找到子串,则返回-1。  

    ${“string”?index_of(“in”) 结果为3  
    ${“string”?index_of(“ab”) 结果为-1  


    length返回字符串的长度 ${“string”?length}结果为6  

    lower_case将字符串转为小写   
    ${“STRING”?lower_case} 结果为string

    upper_case将字符串转为大写   
    ${“string”?upper_case} 结果为STRING   

    ends_with 判断某个字符串是否由某个子串结尾,返回布尔值。   
    ${“string”?ends_with(“ing”)?string} 返回结果为true

    注意:布尔值必须转换为字符串才能输出

    html 用于将字符串中的<、>、&和“替换为对应得&lt;&gt;&quot:&amp  
      
    Start参数用于指定从字符串的那个索引处开始搜索,start为数字值。

    1.如果start大于字符串长度,则start取值等于字符串长度,如果start小于0, 则start取值为   
    ${‘str’?substring(0)} 结果为str   
    ${‘str’?substring(0,1)} 结果为s   


    2.cap_first 将字符串中的第一个单词的首字母变为大写。   
    ${‘str’?cap_first} 结果为Str   


    3.uncap_first将字符串中的第一个单词的首字母变为小写。   
    ${‘Str’?uncap_first} 结果为str   


    4.capitalize将字符串中的所有单词的首字母变为大写   
    ${‘str’? capitalize} 结果为STR
     
    date,time,datetime将字符串转换为日期   
    例如:   
    <#assign date1=”2009-10-12”?date(“yyyy-MM-dd”)>   
    <#assign date2=”9:28:20”?time(“HH:mm:ss”)>   
    <#assign date3=” 2009-10-12 9:28:20”?time(“HH:mm:ss”)>   
    ${date1} 结果为2009-10-12  
    ${date2} 结果为9:28:20  
    ${date3} 结果为2009-10-12 9:28:20 
     
    11.include指令

    // include指令的作用类似于JSP的包含指令:
    <#include "/test.ftl" encoding="UTF-8" parse=true>
      // 在上面的语法格式中,两个参数的解释如下:
    encoding="GBK"  // 编码格式
    parse=true    // 是否作为ftl语法解析,默认是true,false就是以文本方式引入,注意:在ftl文件里布尔值都是直接赋值的如parse=true,而不是parse="true"

      暂时先总结这么多,欢迎指正补充!



     








     
     

    展开全文
  • freemarker ftl语法

    2018-12-18 17:16:13
    分享一个freemarker ftl语法的博客网址 https://blog.csdn.net/ni_hao_ya/article/details/9147347  

    分享一个freemarker   ftl语法的博客网址

    https://blog.csdn.net/ni_hao_ya/article/details/9147347

     

    展开全文
  • ftl 语法使用

    2011-09-07 12:41:12
    ftl 语法使用如下: 默认两种用法 ${!("")} ${default("")} getPieceByType为方法名,type为值 Ftl代码 默认两种用法 ${!("")} ${default("")} 默认两种用法 ...
  • MyEcplise2014安装Freemarker插件(支持.ftl文件)1、下载插件:http://sourceforge.net/projects/freemarker-ide/?source=typ_redirect2、下载freemarker-2.3.19.jar:...
  • MyEcplise安装Freemarker插件(支持.ftl文件) 1、下载插件:http://sourceforge.net/projects/freemarker-ide/?source=typ_redirect 2、下载freemarker-2.3.19.jar:...
  • 循环的时候有几个隐藏变量: ${9msg_index}, ...这里的9msg_index为当前循环索引号。“_index”是FreeMarker中对于循环索引 ...通过“迭代变量名_index”即可访问当前循环索引。...类似的循环状态访问约定还有“迭代...
  • ftl基础语法

    2017-11-17 17:11:21
    FTL常用标签及语法: 一 变量定义  1. 定义全局变量 2. 定义局部变量 二 内置函数 1. 判断对象是否存在 如: obj可以是任何类型的对象,像集合,实体类,属性等等  ....  ....... 或者  .... ...
  • FTL基本语法

    2019-08-20 15:59:37
    FTL基本语法1、字符输出2、日期输出3、数字输出(以数字20为例)4、申明变量5、比较运算符6、算术运算符7、逻辑运算符8、FreeMarker中的运算符优先级如下(由高到低排列):9、if 逻辑判断(注意:elseif 不加空格)10、...
  • ftl 常用语法

    2017-03-08 15:05:00
    <#if rl.birthday??> ${(.now?string('yyyy')?eval-rl.birthday?date('yyyyMMdd')?string('yyyy')?eval)!} </#if> ?eval string转int/double ?date string转date ......
  • freemarker ftl常用语法

    2015-08-20 15:33:49
    ${book.name}${book.name?if_exists} //值是否存在${book.name?default("xxx")} //默认值xxx(若book.name为null,则显示xxx;若book.name不为空,则显示对应值)${book.name!"xxx"} //默认值xxx(若book.name为null...
  • freemarker(FTL)常见语法大全,讲解ftl中的常见语法
  • freemarker ftl模板语法和指令

    千次阅读 2019-11-23 17:13:00
    freemarker模板上主要由一下4个部分组成: 1、注释,即<#‐‐和‐‐>,介于其之间的内容会被freemarker忽略; 2、插值(Interpolation):即${..}部分,freemarker会用...3、FTL指令:和HTML标记类似,名字前加...
  • Freemaker FTL指令常用标签及语法

    万次阅读 多人点赞 2016-07-30 06:27:45
    Freemaker FTL指令常用标签及语法
  • freemarker ftl文件简单语法整理 应项目组要求修改PDF功能为word,这是使用freemarker,故将一些常用的语法整理进来 本文转载至 链接: freemarker 常见语法整理. 我的freemarker 整理使用教程及源码 链接: link. ...
  • .ftl文件简介及语法

    千次阅读 2017-01-20 17:03:07
    .ftl文件简介及语法 1、Freemarker模板的文件后缀名 2、Freemarker其实是一种比较简单的网页展示技术,说白了就是网页模板和数据模型的结合体。这种结合模式的好处就是,分离了网页界面设计人员和编程人员的工作...
  • FTL入门文档学习

    2012-11-16 14:27:35
    FTL入门文档学习,ftl语法,以及按例
  • FTL常用标签及语法

    2015-12-02 11:46:00
    FTL常用标签及语法 版权声明:本文为博主原创文章,未经博主允许不得转载。 判断对象是否存在,若成立说明存在<#if blockObjList ??></#if> <#if blockObjList ??> <#else> &...
  • 使用freemarker(FTL)常见语法 总结

    万次阅读 2016-06-01 11:17:57
    freemarker(FTL)常见语法大全  FreeMarker的插值有如下两种类型:1,通用插值${expr};2,数字格式化插值:#{expr}或#{expr;format}  ${book.name?if_exists } //用于判断如果存在,就输出这个值  ${...
  • freemarker(FTL)常见语法

    2014-05-14 22:08:24
    freemarker(FTL)常见语法大全FreeMarker的插值有如下两种类型:1,通用插值${expr};2,数字格式化插值:#{expr}或#{expr;format} ${book.name?if_exists } //用于判断如果存在,就输出这个值 ${book.name?default(‘xxx...
  • parse=true 是否作为ftl语法解析,默认是true,false就是以文本方式引入.注意在ftl文件里布尔值都是直接赋值的如parse=true,而不是  parse=”true”  hash与list的定义   c= {"a":"orz","b":...
  • FTL指令常用标签及语法 注意:使用freemaker,要求所有标签必须闭合,否则会导致freemaker无法解析。 freemaker注释:<#-- 注释内容 -->格式部分,不会输出 ---------------------------------- 基础语法 ---...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,404
精华内容 2,161
关键字:

ftl语法