getSiblings() 和 sort_by 错误

getSiblings() and sort_by error

我在 Liferay 中使用结构 (XML) 和模板 (FTL)。

我的问题是我不知道如何将 sort_by()getSiblings() 一起使用。

这段代码不起作用,举个例子:

<ul id="emedia-categories">
  <#list category?sort_by('linktext').getSiblings() as cat>
    <li>
      <a href="${cat.path.getData()}" title="${cat.title.getData()}">
        <h3>
          ${cat.linktext.getData()}
        </h3>
        <img src="${cat.image.getData()}" alt="image-alt">
      </a>
    </li>
  </#list>
</ul>

我得到的错误如下:

Expected sequence. category evaluated instead to com.liferay.portal.freemarker.LiferayTemplateModel on line 2, column 16 in 14868#14904#131571.

我想要实现的是循环遍历所有数据,并且在执行此操作时,我希望它根据每个 cat.linktext 内的字符串进行排序。所以结果是这样的:A, B, C, D, E...

而不是:D、B、E、A、C...

这是我唯一的工作变体,但它对 linktext 没有任何排序,它只是按照输入的顺序循环数据(可能按 id):

<ul id="emedia-categories">
  <#list category.getSiblings() as cat>
    <li>
      <a href="${cat.path.getData()}" title="${cat.title.getData()}">
        <h3>
          ${cat.linktext.getData()}
        </h3>
        <img src="${cat.image.getData()}" alt="image-alt">
      </a>
    </li>
  </#list>
</ul>

错误消息很清楚:您正在尝试 对不是序列(= 列表或数组)的类别进行排序。

想要根据属性 linktext.data:

对兄弟姐妹进行排序,这是一个序列(= 列表)
<#list category.siblings?sort_by(['linktext', 'data']) as cat>
 ...
<#/list>