作为主要的 VB.NET 程序员,我对 VTL(速度模板语言)非常陌生。我目前正在尝试自定义使用 Velocity 模板和 Jython 的应用程序。
我在现有文件中有以下 VTL 代码。此代码从 JSON 文件中获取一些键值对,并将它们以整齐的表格形式输出到浏览器:
<table class="meta">
#set($keySet = $metadata.getJsonObject().keySet())
#foreach($key in $keySet)
<tr>
<th width="25%">$parent.getFriendlyName($key)</th>
<td>
#set($valueList = $metadata.getList($key))
#if($valueList.size() > 1)
#foreach($value in $valueList)
<span class="meta-value">$self.escape($value)</span><br/>
#end
#else
$self.escape($valueList.get(0))
#end
</td>
</tr>
#end
</table>
我可以显示 $keySet 数组:
[field1, field2, field3, field4]
我试图做的是按字母顺序对 $keySet 数组中的字符串进行排序。
我尝试通过更改来使用 SortTool(http://velocity.apache.org/tools/devel/javadoc/org/apache/velocity/tools/generic/SortTool.html)
#foreach($key in $metadata.getJsonObject().keySet())
至
#foreach($key in $sorter.sort($metadata.getJsonObject().keySet()))
但是 sort() 函数返回的数组是空的。
此外,我不认为http://www.liferay.com/community/forums/-/message_boards/message/11146823中列出的解决方案适用,因为我没有尝试对子字段进行排序。
任何建议将不胜感激。提前致谢。