核心提示: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 Listlist = 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]}