如何在Freemarker中对列表按Item group和Item name多列排序?
实现Freemarker多维度排序:先按Item Group分组排序,再按Item Name排序
要实现先按Item Group排序、组内再按Item Name排序的需求,直接利用Freemarker内置的?sort_by函数的多参数特性即可,该函数支持按传入的字段顺序依次排序,优先级从左到右。
修改后的代码示例
<#list record.item?sort_by("itemGroup", "item") as item> <!-- 这里渲染表格行内容 --> <tr> <td>${item.itemGroup}</td> <td>${item.item}</td> </tr> </#list>
关键说明
?sort_by("itemGroup", "item")表示:首先按itemGroup属性(对应你的Item Group字段)升序排序,当itemGroup值相同时,再按item属性(对应你的Item Name字段)升序排序。- 如果你的实际属性名不是
itemGroup和item,请替换为数据对象中对应的属性名称(比如组字段叫group、名称字段叫name,就写成?sort_by("group", "name"))。 - 若需要降序排序,可在字段名前加负号,比如
?sort_by(-"itemGroup", "item")表示组降序、组内名称升序。
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

