6、freemarker自定义指令

自定义函数分为以下几步:
1、继承 TemplateMethodModelEx类
  1. package com.xuzengqiang.freemarker.framework;  
  2.   
  3. import java.util.List;  
  4.   
  5. import org.omg.CORBA.INTF_REPOS;  
  6.   
  7. import freemarker.template.SimpleNumber;  
  8. import freemarker.template.SimpleScalar;  
  9. import freemarker.template.TemplateMethodModelEx;  
  10. import freemarker.template.TemplateModel;  
  11. import freemarker.template.TemplateModelException;  
  12.   
  13. @SuppressWarnings("all")  
  14. public class RepeatMethod implements TemplateMethodModelEx  
  15. {  
  16.   
  17.     @Override  
  18.     public TemplateModel exec(List list) throws TemplateModelException  
  19.     {  
  20.         String str=list.get(0).toString();  
  21.         int num=Integer.valueOf(list.get(1).toString());  
  22.         StringBuffer result=new StringBuffer();  
  23.         for(int i=0;i
  24.         {  
  25.             result.append(str);  
  26.         }  
  27.         return new SimpleScalar(result.toString());  
  28.     }  
  29.   
2、暴露节点
修改配置文件
  
  
   
   
   
    
     
    
   
  
  
  

3、使用
  1. <#assign str="love">  
  2. ${repeat(str,3)}  
在控制台打印的就是:
    1. lovelovelove 

你可能感兴趣的:(6、freemarker自定义指令)