我有此模板呈现JSON内容:

[
#{list data}
{
    "title": ${_.title},
     "id": ${_.id}
}
#{if !_isLast},#{/if}#{/list}
]


在打印数据成员之前,是否可以在模板内对data进行排序?

最佳答案

有可能的:

//src
%{
    exampleList = ["z", "y", "a", "b"]
}%

<ul>
#{list items:exampleList.sort(), as:'product'}
    <li>${product}</li>
#{/list}
</ul>
//rendered
<ul>
    <li>a</li>
    <li>b</li>
    <li>y</li>
    <li>z</li>
</ul>


另外,您可以给sort()一个lambda表达式如何排序,这里有一些示例:http://groovy.codehaus.org/JN1015-Collections

但是最好不要使用模板引擎来呈现JSON。您可以从控制器http://wiki.fasterxml.com/JacksonInFiveMinutes中使用Jackson,也可以从控制器类http://www.playframework.org/documentation/api/1.2.5/play/mvc/Controller.html中使用renderJson。 Palako已经为您提供了对控制器进行排序的提示。

09-04 08:32
查看更多