freemark--宏定义

本文介绍了Freemarker模板语言中的宏定义,包括宏的创建、使用方式、参数定义及注意事项。通过示例展示了如何定义和调用宏,以及宏内的嵌套内容处理。在实际应用中,宏能够提高模板的复用性和可维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Freemarker宏定义的用发:
宏是在模板中使用macro指令定义 
基本用法 :
宏是和某个变量关联的模板片断,以便在模板中通过用户定义指令使用该变量,




举例说明:
<#macro greet name>
     我的名字叫做${name}!  
</#macro>


以上为一个宏定义,
greet 表示为宏定义的一个变量
name   表示该宏定义的一个参数


使用该宏定义:
<@greet name="haha" />
在使用参数的时候要注意下面两点:


1、  使用的参数一定要事先定义;


2、  定义的参数在使用的时候一定要进行赋值,除非在创建macro的时候给参数默认值;


3、  参数所能赋予的值不一定是字符串,也可以是其他类型,还可以是一个预运算表达式


4、  在使用的时候,对参数赋值顺序不确定,可随意


5、  参数是局部变量,只能在宏定义中有效


 如果不满足上面任何一个,程序就会出错。




 嵌套内容


         在macro定义题中您可以嵌套内容,如:


                   <#macro border>


                            <table border=4>


                                     <tr><td><#nested></td></tr>


                            </table>


                   </#macro>


         在使用的时候可以在开始标记和结束标记中填充内容:


                   <@border>Hellow World</@border>


         这样就会输出以及Hellow World,使用<#nested>可以嵌套指令可以在宏定义体中多次调用。


         如果你使用了一个定义体中没有<#nested>嵌套指令的宏,而开始标记和结束标记中嵌套的又有内容,FreeMarker不会出现任何错误,但内容不会输出.








在ftl2中可以这样使用:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>freemark 测试</title>
</head>
<body>
<#include "example1.ftl" />
<@greet name="sss"></@greet>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值