freemaker除了提供默认的一些函数方法,比如if_exist 判断当前值是否为null 。
使用自定义方法处理相应的数据
1 自定义方法继承TemplateMethodModelEx(具体可参考官网)
public class free01 implements TemplateMethodModelEx {
@Override
public Object exec(List list) throws TemplateModelException {
return list.get(0).toString();
}
}
2 增加参数设置方法 root.put(“indexof”,new free01());
Map root = new HashMap();
//设置方法
root.put("indexof",new free01());
Template temp = cfg.getTemplate("ftl/template.ftl");
/* Merge data-model with template */
Writer out = new OutputStreamWriter(System.out);
temp.process(root, out);
3 修改页面
使用方法
<html>
<head>
<title>Welcome!</title>
</head>
<body>
${indexof("met","sorry")}
<p>Our latest product
</body>
</html>
4 输出结果
<html>
<head>
<title>Welcome!</title>
</head>
<body>
m
<p>Our latest product:
</body>
</html>