【freemaker】之自定义指令<#macro>
测试代码
@Test
public void test07(){
try {
root.put("name", "张三");
freemakerUtil.fprint(root, "07.ftl", fn+"07.html");
} catch (Exception e) {
e.printStackTrace();
}
}
flt模版文件
<body>
<#--自定义指令
1、自定义指令 如果使用必须要调用 <@ />这种形式调用
2、自定义指令可以设置参数,参数可以设置默认值,
设置了默认值的参数在调用的时候可以不设置值,
设置默认值的参数必须放在最后面
3、如果自定义指令没定义参数,那么在调用的时候也不能传,否则会报错
-->
<#--自定义指令循环打印5次-->
<#macro hello world num=5>
<#list 1..num as n>
hello : ${name}-[${world}]-${n}
</#list>
</#macro>
<@hello world="你好"/> <#--可以用nested替换里面的内容-->
<#macro test num=3>
<ul>
<#list 1..num as n>
<#nested n/>
</#list>
</ul>
</#macro>
<@test;n>
<li>${n}.abc</li>
</@test> <#--在自定义指令中使用assign定义变量会改变模版中的值,是全局变量,应该使用local来定义-->
<#macro helloworld>
<#--<#assign name="李四"/>-->
<#local name="李四">
${name}
</#macro>
<@helloworld/>
${name}
</body>
效果:

【freemaker】之自定义指令<#macro>的更多相关文章
- [freemarker篇]06.超级强大的自定义指令
Freemarker的自定义指令是很强大的,非常强大,在之后的教程中我会简单的做一个示例,让大家对其有所了解!如果做Freemarker编程,请好好看看API手册,可以说里面的内容很多!也是一门独立的 ...
- Freemaker 自定义指令和函数
自定义函数和指令都可以在前台或者后台进行指定. 个人理解:指令的作用,主要是进行页面调整之后进行输出:函数的作用,主要是为了进行运算,返回运算结果供前台展示. (一) 自定义指令 使用以下格式调用自定 ...
- freemarker实现自定义指令和自定义函数
自定义指令: 1.指令在前台实现 <#macro name param1,param2,param3...paramN> </#macro> 2.指令在后台实现 1.实现Tem ...
- Angular的自定义指令以及实例
本文章已收录于: AngularJS知识库 分类: javascript(55) http://www.cnblogs.com/xiaoxie53/p/5058198.html 前面的文章介 ...
- vue自定义指令
Vue自定义指令: Vue.directive('myDr', function (el, binding) { el.onclick =function(){ binding.value(); } ...
- ng-repeat里创建的自定义指令
在ng里,所有的指令在按照意愿正常工作之前的都需要编译一下,包含angularJS的自定义指令. ng模板里的所有指令都会在angularJS加载完毕之后编译一下,所以那些自定义指令和事件才能工作. ...
- angular 自定义指令 directive transclude 理解
项目中断断续续的用了下angular,也没狠下心 认真的学习.angular 特别是自定义指令这块 空白. transclude 定义是否将当前元素的内容转移到模板中.看解释有点抽象. 看解释有点抽象 ...
- Vue - 自定义指令
1.Vue.directive(id,definition)注册一个全局自定义指令,接收两个参数,指令ID以及定义对象 2.钩子函数:将作用域与DOM进行链接,链接函数用来创建可以操作DOM的指令 b ...
- AngularJS笔记--自定义指令
在前端开发中, 我们会遇到很多地方都会用到同一种类型的控件.AngularJS提供了自定义指令功能,我们可以在指令里面定义特定的html模板.提供给前台html调用. 一. 指令的简单定义. 下面定 ...
随机推荐
- EaseType缓动函数
http://sol.gfxile.net/interpolation/ 一篇很详细的图文
- json 递归查找某个节点
一段json可能有很多的子节点,需要查询到某一个节点 用到的js是 find-in-json.js 地址是:https://gist.github.com/iwek/3924925 貌似翻|||墙才能 ...
- js——单选框radio
页面: ... <tr align="right"> <td align="right">会员性别:</td> <td ...
- [转]深入理解Java 8 Lambda(类库篇——Streams API,Collectors和并行)
以下内容转自: 作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-l ...
- position 定位
position属性是指本体相对于上级的定位,position又分绝对定位和相对定位.他的默认值是static,意味着元素没有被定位,出现在文档流中应该出现的位置.如果用position来布局页面,父 ...
- erlang中的lists:foldl()的用法,格式转换实例应用
lists:foldl(fun(),参数1,参数2):这个函数就是先把参数1传给fun()处理,然后将参数2(列表)中每一个元素,依次传给fun()函数进行处理. lists:foldl(fun(El ...
- K2 BPM打造企业新门户,步入移动办公时代
公司介绍步步高教育电子有限公司(前身为步步高电脑电玩厂)是广东步步高电子工业有限公司属下的三个分公司之一,一直致力于面向广大学生的教育电子产品的研发与生产,主要产品有视频学习机.点读机.学生电脑.语言 ...
- golang的第一个deadlock
package main import ( "fmt" "math/rand" ) func push(c chan []int) { ...
- linux 2.6.21版本的内核合法的MAC地址
当执行ifconfig eth0 hw ether 11:22:33:44:55:66时,当前内核显示修改成功,但是ping时只无限发送ARP包,PC机也已经给板子回ARP包,但没有任何ICMP包的信 ...
- BEGIN_TEMPLATE_MESSAGE_MAP
最近转做服务端开发,或多或少有点坑爹的感觉.目前正在恶补Linux C/C++编程,主要还是集中在Linux系统API的学习.不过也好,以后更新的内容不仅仅只有Windows了. 今天说一点简单的东西 ...