• freemaker宏的用法


    freemaker宏

    定义:定义一个标签,标签体中可以包含参数,开始标签和结束标签可以包含内容,内容中可以通过${}方式引用标签体中定义的参数

    用法:页面引入标签,通过标签可以直接输出标签的内容

    HelloWorld实现

    定义html.ftl:
    <
    #macro html title> <html> <head>   <meta http-equiv="Content-Type" content="text/html; charset=GBK" />   <title>${title}</title>   <link rel="stylesheet" rev="stylesheet" href="/oa/file/css.css" type="text/css" media="all" /> </head> <body>   <#nested/> </body> </html> </#macro>
    用法:
    <#import "/WEB-INF/template/common/common.ftl" as c> 
    
    <@c.html title="OA"> 
          你的内容 
    </@c.html>
    输出结果:
    <#macro html title> 
          <html> 
            <head> 
              <meta http-equiv="Content-Type" content="text/html; charset=GBK" /> 
              <title>${title}</title> 
              <link rel="stylesheet" rev="stylesheet" href="/oa/file/css.css" type="text/css" media="all" /> 
            </head> 
            <body> 
              你的内容
            </body> 
          </html> 
    </#macro> 

    相关语法

    1.macro

    <#macro name param1 param2 ... paramN> 
    用例 
    <#macro test foo bar="Bar" baaz=-1> 
    Test text, and the params: ${foo}, ${bar}, ${baaz} 
    </#macro> 
    <@test foo="a" bar="b" baaz=5*5-2/> 
    <@test foo="a" bar="b"/> 
    <@test foo="a" baaz=5*5-2/> 
    <@test foo="a"/> 
    输出 
    Test text, and the params: a, b, 23 
    Test text, and the params: a, b, -1 
    Test text, and the params: a, Bar, 23 
    Test text, and the params: a, Bar, -1 

    2.nested(<#macro name param1 param2 ... paramN;x y z> )xyz为nested 标签定义的内容,nested 相当于标签内容的占位符

    <#macro repeat count> 
      <#list 1..count as x> 
           <#nested x, x/2, x==count> 
      </#list> 
    </#macro> 
    <@repeat count=4 ; c halfc last> 
        ${c}. ${halfc}<#if last> Last!</#if> 
    </@repeat> 
    输出 
    1. 0.5 
    2. 1 
    3. 1.5 
    4. 2 Last! 

    3.循环

    <#macro list title items> 
    <p>${title?cap_first}: 
    <ul> 
           <#list items as x> 
             <li>${x?cap_first} 
           </#list> 
    </ul> 
    </#macro> 
    <@list items=["mouse", "elephant", "python"] title="Animals"/> 
    输出结果 
    <p>Animals: 
    <ul> 
             <li>Mouse 
             <li>Elephant 
             <li>Python 
    </ul> 

    参考链接

    http://tdcq.iteye.com/blog/748266

  • 相关阅读:
    九大排序算法
    iOS开发之自定义输入框(利用UITextField及UITextView)
    SQL Server调优系列进阶篇(查询语句运行几个指标值监测)
    C#资源文件与与资源名称字符串之间的互相转化
    EF中用Newtonsoft.Json引发的循环引用问题
    Ajax应用常见的HTTP ContentType设置
    jQuery验证控件jquery.validate.js使用说明+中文API
    今天发现了个轻量级的微信开发的东西。。 记录下
    ASP.NET多文件批量打包下载
    TransactionScope的使用
  • 原文地址:https://www.cnblogs.com/luoxiaolei/p/6810063.html
Copyright © 2020-2023  润新知