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
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
相关文章推荐
- Android studio 中的Theme Editor神器
- jQuery插件
- JAVA实战练习——俄罗斯方块(超简易版)
- 5、Jsp 核心标签库
- JavaWeb学习总结(一)——JavaWeb开发入门
- 4、free 4000 marker常用指令
- UML之包图
- R语言-分组统计
- 基于消息的软件架构
- BZOJ 2435 NOI2011 道路建设 BFS/DFS
- 使用代理下载非docker hub的镜像如google cloud private registry
- 3、EL 与 freemarker 表达式比较
- shortcut key in source insight
- opencv:计算程序运行时间
- 使用FileUpload组件实现文件上传
- JavaWeb学习总结(三)——Tomcat服务器学习和使用(二)
- 关于SVGKit导入的一些流程
- Docker Remote API 配置
- 【SDOI2008】【BZOJ3226】校门外的区间
- JS基于VML技术实现的五角星礼花效果代码