2016-08-15 51 views
1

我在Liferay中使用结构(XML)和模板(FTL)工作。getSiblings()和sort_by错误

我的问题是,我没有得到如何使用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> 

回答

1

的错误信息是非常明确的:你是试图排序的类别,这不是一个序列(=一个列表或数组)。

由属性linktext.data的兄弟姐妹,这是一个序列(=列表)排序,:

<#list category.siblings?sort_by(['linktext', 'data']) as cat> 
... 
<#/list> 
+0

是的,我猜的错误信息是十分清楚的。但我找不出解决方案。谢谢。 – JoakimB