• freemarker实现自定义指令和自定义函数


    自定义指令:

    1.指令在前台实现

      <#macro name param1,param2,param3...paramN>

      </#macro>

    2.指令在后台实现

     1.实现TemplateDirectiveModel接口

    参数说明:
      1. environment : 是环境变量,在这里我们可以拿到 通过  environment.getOut  拿到 Write 。
      2. map :这里我们可以等到参数,这里的参数是以 键值对的形式存在的。
      3. templateModel : 是所以数据类型的顶级接口,我们  可以通过  templateMole[i]  通过这个i变量来返回我们指定的第几个参数的返回值。
      4. templateBody : 是标签开始和结束的 内容 ,通过这个对象的 render()方法我可以接着执行 自定义标签里的 其他标签(freemarker内置标签或者我们自定义标签)

    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的配置文件中

  • 相关阅读:
    【PyTorch深度学习60分钟快速入门 】Part1:PyTorch是什么?
    如何编写一个gulp插件
    进阶之初探nodeJS
    模拟Vue之数据驱动5
    模拟Vue之数据驱动4
    模拟Vue之数据驱动3
    模拟Vue之数据驱动2
    树结构之JavaScript
    模拟Vue之数据驱动1
    CORS详解[译]
  • 原文地址:https://www.cnblogs.com/Mr-Rocker/p/7676188.html
Copyright © 2020-2023  润新知