freemarker自定义指令

2017-11-08  本文已影响14人  吐痰高手
  1. 写实际逻辑
定义一个类,实现TemplateDirectiveModel这个借口

重写  execute(Environment env,Map params,TemplateModel[] loopVars,TemplateDirectiveBody body) 方法
//第一个参数: Environment env环境变量
//第二个参数: Map params 入参保存在这个map中
//第三个参数: TemplateModel[] loopVars 返回值,这个返回值必须用freemarker的数据类型
//要返回值,直接loopVars[0] = xxx;loopVars[1] = yyy;就行了
//第四个参数: 一般用body.render(env.getOut())将指令标签中的内容输出
  1. 声明自定义指令
    需要在spring配置文件中为FreeMarkerConfigurer这个bean配置
<property>
    <map>
        <entry key="指令名称" value-ref="TemplateDirectiveModel的实现类"/>
    </map>
</property>
  1. 调用格式
<@指令名 入参key1="入参value1" 入参key2="入参value2" ....; result1 , result2, result3

</@指令名>
上一篇下一篇

猜你喜欢

热点阅读