您的位置:首页 > 其它

6、freemarker自定义指令

2015-10-26 09:38 309 查看
自定义函数分为以下几步:
1、继承 TemplateMethodModelEx类

package com.xuzengqiang.freemarker.framework;  
  
import java.util.List;  
  
import org.omg.CORBA.INTF_REPOS;  
  
import freemarker.template.SimpleNumber;  
import freemarker.template.SimpleScalar;  
import freemarker.template.TemplateMethodModelEx;  
import freemarker.template.TemplateModel;  
import freemarker.template.TemplateModelException;  
  
@SuppressWarnings("all")  
public class RepeatMethod implements TemplateMethodModelEx  
{  
  
    @Override  
    public TemplateModel exec(List list) throws TemplateModelException  
    {  
        String str=list.get(0).toString();  
        int num=Integer.valueOf(list.get(1).toString());  
        StringBuffer result=new StringBuffer();  
        for(int i=0;i<num;i++)  
        {  
            result.append(str);  
        }  
        return new SimpleScalar(result.toString());  
    }  
  

2、暴露节点

修改配置文件
 <!-- 配置freeMarker的模板路径 --> 
 <bean
id="freemarkerConfig" class="com.egova.web.freemarker.PluginFreeMarkerConfigurer"> 
 
<property name="freemarkerSettings" ref="freemarkerConfiguration" /> 
 
<property name="templateLoaderPath" value="classpath*:template" /> 
 
<property name="freemarkerVariables"> 
 
 <map> 
 
  <entry key="repeat" value-ref="repreatMethod" /> 
 
 </map> 
 
</property> 
 </bean> 
  
 <bean
id="repreatMethod" class="com.egova.web.freemarker.RepeatMethod" /> 

3、使用

<#assign str="love">  

${repeat(str,3)}  

在控制台打印的就是:

    1. lovelovelove 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: