freemarker模板引擎使用的高级技巧

字符串、集合操作

<#assign a = 'hello'/>
<#assign b = 'world'/>

 

1. 字符串连接

${a + b}

2. 字符串截取

${(a + b)?substring(5,8)}

3.字符串长度 

${(a + b)?length}

4.字符串大小写 

<!--字符串大写-->
${(a + b)?upper_case}
<!--字符串小写-->
${(a + b)?lower_case}

5. 字符串首次出现的位置

${(a + b)?index_of('w')

 6.字符串替换

${(a + b)?replace('w','A')}

 

自定义函数

1. 自定义函数实现数组排序

声明数组并显示未排序之前的数组

<#assign myList = [2,3,4,5,1,8,9,8,7]/>
        <li>未排序</li>
        <#list myList as item>
            ${item}
        </#list>

编写自定义函数类

public class SortMethod implements TemplateMethodModelEx {
    @Override
    public Object exec(List arguments) throws TemplateModelException {

        //获取第一个参数
        SimpleSequence arg0 = (SimpleSequence)arguments.get(0);
        List<BigDecimal> list = arg0.toList();

        Collections.sort(list, new Comparator<BigDecimal>() {
            @Override
            public int compare(BigDecimal o1, BigDecimal o2) {
                return o1.intValue() - o2.intValue(); //升序
               // return o1.intValue() - o2.intValue(); //降序
            }
        });
        return list;
    }
}

通过controller层传入到前端页面 

mv.addObject("sort_int",new SortMethod());

实现数组排序 

 <li>升序、降序排列</li>
        <#list sort_int(myList) as item>
            ${item}
        </#list>

2. 内建函数实现数组排序

  <#assign myList = [2,3,4,5,1,8,9,8,7]/>
        <li>内建函数实现数组排序</li>
        <!--sort升序,reverse倒序-->
        <#list myList?sort as item>
            <!--${item_index}是指数组的下标-->
            ${item_index} : ${item}
        </#list>

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值