您现在的位置:首页 >> 前端 >> 内容

Freemarker自定义函数

时间:2017/6/16 9:21:13 点击:

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

Tags:FR RE EE EM 
作者:网络 来源:PasserQi