技术博客

Freemarker Macro Demo

信息发布:soゝso 发布日期:2017-03-04 16:43 热度:1539 分享到:

  Freemarker  Macro 是  Freemarker  中一个亮点。自己细细去品尝。

PS:下面的Demo代码的 $符号和后面的{}都会隔开一个空格,在正常使用中,不能空开。

配置文件方式Macro 的引入

当前项目是采用配置文件引入,详细参照spring-mvc.xml 文件,下面单独摘除这一段。

<!-- 配置freeMarker 拓展-->
<bean id="freemarkerConfig"
	class="com.sojson.core.freemarker.extend.FreeMarkerConfigExtend">
	<property name="freemarkerSettings">
		<props>
			<prop key="auto_import">
				<!-- Freemarker macro 文件引用,可以多个 -->
				/common/config/top.ftl as _top,
				/common/config/left.ftl as _left 
			</prop>
		</props>
	</property>
</bean>

/common/config/top.ftl as _top 也就是把这个top.ftl 别名设置为_top ,后面的调用采用别名,top.ftl  文件内容如下:。

<#--第一个参数[name]表示这个macro的name,后面为参数,可以N个-->
<#macro name param1,param2,param3,....>
	$ {param1}
	$ {param2}
</#macro>

使用方式

<@_top.top 5,6,7/>

表示为:

<@别名.name 参数1,参数2,参数3.../>

Freemarker 方式引入

首先定义一个macro ,文件名称为macro1.ftl ,在当前项目下可以看到,代码如下。

<#--测试宏 1-->
<#macro demo1 color,name> 
<font size="+2" color="$ {color}">Hello $ {name}!</font> 
</#macro> 


<#--测试宏 2-->
<#macro copyright date> 
<p>Copyright (C) $ {date} SOJSON.COM. All rights reserved. 
<br>Email: $ {mail}</p> 
</#macro> 
<#--作用域变量-->
<#assign mail = "i@itboy.net"> 

引入

在你想要使用的  Freemarker  文件内引入。

<#--引入,macroDemo为别名-->
<#import "macro1.ftl" as macroDemo/>
<#--调用-->
<@macroDemo.demo1 'red','德玛西亚'/>
<#--调用内部变量-->
$ {macroDemo.email}

结果输出

Hello 德玛西亚!

i@itboy.net

当前项目是采用第一种方式,目录在/shiro_ssm_ehcache/src/main/webapp/WEB-INF/ftl/common/config/*下,本项目的使用参考下图:


本文主题

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

¥我需要走的更远,点击我 赞助。 如果还有疑问,点击我加群,为你提供最好的解答。


工具导航地图