使用freemarker通常要把一些常用的html代码段封装成一个整体使用,这里就用到了freemarker的宏(macro)。
首先编写存放macro代码的模板文件,命名为function.ftl:
# 展示数据字典组成的下拉列表
# @param data 数据集合
# @param optionVal 选项value属性字段名,默认为id
# @param optionTxt选项文本属性字段名,默认为name
# @param name下拉列表name值
# @param value下拉列表value值
# @param nullable决定下拉列表是否提供空选项,默认true
# @param nullVal下拉列表空选项的取值,默认为空字符串
# @param nullTxt下拉列表空选项的文本,默认为空字符串
# @param classList下拉列表class值
# @param style下拉列表节点样式
# @param disabled设置下拉列表为禁用
#-->
name="${name}"
id="${id}"
class="${classList}"
style="${style}"
disabled >
${nullTxt}
option_txt = ("d." + optionTxt)?eval>
selected>${option_txt}
#macro>
完成后需要将这个文件配置到freemarker.properties中:
auto_import=/WEB-INF/freemarker/function.ftl as fn
这样function.ftl就会被自动加载,其中fn相当于命名空间。这里要注意的是,上面的路径其实受到freemarker设置的模板加载路径参数所影响,注意路径写正确,否则会报文件不存在异常。
然后就是使用这个宏,可以在ftl文件中这样使用已完成的宏:
如果只是在少数地方使用这个宏,也可以不配置auto_import,在使用的地方通过import指令来引入,如下:
注意文件路径需要使用引号括起来。
版权声明:本文为博主原创文章,未经博主允许不得转载。