核心提示:Freemarker自定义函数自定义函数在Java中编写,用ModelAndView添加到flt文件中使用例子:排序函数排序函数实现类SortMethod此类实现TemplateMethodModel...
Freemarker自定义函数
自定义函数
在Java中编写,用ModelAndView添加到flt文件中使用
例子:排序函数
排序函数实现类SortMethod
此类实现TemplateMethodModelEx接口,写sort_int中的排序逻辑
public class SortMethod implements TemplateMethodModelEx{
@Override
public Object exec(List arguments) throws TemplateModelExcetion{
//获得第一个参数
//所有参数都要先转成SimpleSequence
SimpleSequence arg0 = (SimpleSequence)arguments.get(0);
//把参数转换为list
List list = arg0.toList();
//排序
Collection.sort(list,
new Comparator() {
@Override
public int compare(BigDecimal o1,BigDecimal o2) {
return o1.intValue() - o2.intValue(); //升序
}
}
);
return list; //函数返回值
}
}
controller类
将类SortMethod添加到ModelAndView作为函数,供flt文件中使用
@Controller
@RequestMapping("/")
public class Cp1Controller{
@RequestMapping("/cp1")
public ModelAndView index() {
//创建路径
ModelAndView mv = new ModelAndView("cp1");
//把函数处理类传入视图
mv.addObject("sort_int",new SortMethod() );
return mv;
}
}
在.flt文件使用
直接当函数使用
<#assign myList=[2,3,1,5,4]/>
<#list sort_int(myList) as item>
${item},
List内置排序函数
- <#assign myList=[2,3,1,5,4] /> <#-- sort为函数,reverse为倒序--> <#list myList?sort?reverse as item> <#-- item_index为下标 --> ${item_index}:${item}
${myList?size}
${myList[3]}


