前几天自己写freemarker的宏的时候,总是加载不上宏标签
网上搜索一番还是没有搞定:
正确的做法应该是:
把所有宏变量放入一个ftl Lib文件里面,然后再freemarker.properties 里面加载这个lib就可以了。如:
这个是lib.ftl
<#macro btn_a name href icon="cog">
<!--a 标签类型按钮-->
<a href="${href}" class="btn btn-default btn-sm"><i class="fa fa-${icon} fa-lg"></i> ${name}</a>
</#macro>
<#macro btn_b name onclick icon="cog">
<!--button 标签类型按钮-->
<button onclick="${onclick}" type="button" class="btn btn-default btn-sm"><i class="fa fa-${icon} fa-lg"></i> ${name}</button>
</#macro>
<#macro container title titleIcon="list-alt">
<!--容器-->
<div class="container-fluid">
<!-- 盒子开始 -->
<div class="box">
<div class="box-title">
<h3>
<i class="fa fa-${titleIcon!"list-alt"} fa-fw"></i>12312
</h3>
</div>
<!--内容-->
<div class="box-content">
<#nested>
</div>
</div>
</div>
</#macro>
freemarker 配置文件:
tag_syntax=auto_detect
template_update_delay=1
whitespace_stripping=true
default_encoding=UTF-8
output_encoding=UTF-8
locale=zh_CN
number_format=\#
classic_compatible=true
auto_import="/admin/include/lib.ftl" as t
这样就自动加载了。