freemarker 实现自定义标签的方法

来源:互联网 发布:电子数据取证流程 编辑:程序博客网 时间:2024/05/08 18:57
freemarker 实现自定义标签的方法 :
  1. 使用  <macro></macro>  宏定定义标签
  2. 实现  TemplateDirectiveModel的 execute() 方法,写相应的Java代码(这种方式更加的灵活)

 
使用 TemplatedirectiveModel 的 execute 方法 来实现自定义标签 


(1)页面调用和对于的实现类关系
          

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


注: 对于 templateMode 使用 StringModel 和 defaultObjectModel 或者 simpleNumber 这个几个对象就够了。


备注: 使用自定义标签 <@标签名称></#@标签名称>   这里使用 [@标签名称][/@标签民称]出现不解析,所以还是使用<@标签名称></#@标签名称>这种格式的为好。
           




(4)总结:
  1.      自定义一个标签的处理类并且实现TemplateDirectiveModel接口的 execute 方法(里面写自己处理逻辑) 。
  2.      定义一个 自定义的 标签 处理类的 javaBean 。
  3.      配置 despatcherServlet-servlet.xml 文件中的 freemarkerConfig 中的<entry name='directiveNmae' ref-value="xxxxx">属性。
  4.      在相应的页面调用<@directive> 
     

注意:environment 是代表的当前freemarker运行环境,例如freemarker是和spring MVC 结合的,那么他就能拿到 spring MVC中的一些 DataAndView的值








0 0
原创粉丝点击