自定义指令:
1.指令在前台实现
<#macro name param1,param2,param3...paramN>
</#macro>
2.指令在后台实现
1.实现TemplateDirectiveModel接口
2.配置实现类bean到spring bean xml配置文件
3.将实现类bean设置到freemarkerConfig全局变量中
<property name="freemarkerVariables">
<map>
<entry key="XXX" value="beanID" />
</map>
</property>
......
或者<entry key="XXX">
<bean class="com.XXX" />
</entry>
4.ftl文件中访问方式
<@XXX name="XXX",...></@XXX>
自定义函数:
1.定义在前台
<#function name param1,param2,param3...paramN> ... <#return returnValue> </#function>
2.定义在后台
1.实现TemplateMethodModelEx或者TemplateMethodModel接口
TemplateMethodModelEx扩展了TemplateMethodModel,其暗示FTL引擎,形式参数应该直接以TemplateModel-s形式放入java.util.list。否则将会以String-s形式放入List
2.将实例放入数据模型
mav.add("functionName",new XXX());
也可以放入spring-freemarker的配置文件中
原文:http://www.cnblogs.com/Mr-Rocker/p/7676188.html