前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >freemaker宏的用法

freemaker宏的用法

作者头像
编程随想曲
发布2022-04-21 13:35:15
3310
发布2022-04-21 13:35:15
举报
文章被收录于专栏:编程随想曲

freemaker宏

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

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

HelloWorld实现

代码语言:javascript
复制
定义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>
代码语言:javascript
复制
用法:
<#import "/WEB-INF/template/common/common.ftl" as c> 
<@c.html title="OA"> 
      你的内容 
</@c.html>
代码语言:javascript
复制
输出结果:
<#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

代码语言:javascript
复制
<#macro name param1 param2 ... paramN>
代码语言:javascript
复制
用例 <#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"/>
代码语言:javascript
复制
输出 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 相当于标签内容的占位符

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

3.循环

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

参考链接

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程随想曲 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档