Freemarker Macro,Freemarker 宏参数传递详细讲解

JSON 2018-02-06 10:53:36 43982

  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/*下,本项目的使用参考下图:



版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/217.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:

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

关于作者
一个低调而闷骚的男人。
相关文章
Maven的Mirror和Repository 的详细讲解
Linux 安装 Redis 详细步骤讲解
document.domain解决跨域问题,详细讲解
Golang 常见设计模式——装饰模式详细讲解
Plupload 上传详细讲解,Plupload 多实例上传,Plupload多个上传按钮
Bootstrap Affix 插件 高级用法详细讲解
SEO 之 SpringMVC redirect 301,301和302区别详细讲解
TCP 和 UDP协议详细讲解,优缺点分析讲解
HttpClient 获取详细的头信息
解JavaScript中splice()方法,有Demo详细介绍
最新文章
XML内部实体和外部实体 146
Java面向对象编程概念 111
PHP回显语句 91
Linux—文件树 116
C语言while循环和do while循环 131
Python元组剖析 200
MySQL触发器教程 296
sql使用布尔运算符和关系运算符 241
C语言的变量和常量 296
PostgreSQL:数据库角色 123
最热文章
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 681984
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 674712
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 602004
免费天气API,天气JSON API,不限次数获取十五天的天气预报 576769
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 552904
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 509353
Elasticsearch教程(四) elasticsearch head 插件安装和使用 479956
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 264463
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 244246
Elasticsearch教程(一),全程直播(小白级别) 225520
支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

查看我的收藏

正在加载... ...