1

Freemarker テンプレートがあり、「LocalTime」と「ServerTime」が 2 回関係しています。データからユーザーの LocalTime を特定できる場合は、「LocalTime」と sort_by を使用する必要があります。そうでない場合は、ServerTime で sort_by する必要があります。データ全体がリスト内に存在します (レコードから)

もともと ServerTime を使用しても問題ありませんでしたが、関数は次のようになりました。

<#list x.data.record?sort_by("ServerTime") as s>

しかし、「LocalTime」があるかどうかを確認したい場合は、どうすればよいですか?

私はラインで何かを期待しています..

<#list x.data.record?sort_by("ServerTime||LocalTime") as s>

(これは 2 つの列の並べ替えとは異なることに注意してください)

4

2 に答える 2

4

?sort_byこれはできません。これにはカスタム コンパレータ機能が必要ですが、 ?sort_by(myComparatorFunction)ATM はサポートされていません。

すでにソートされているリストをデータモデルに追加できない場合、またはプレゼンテーション層だけに触れたい場合でもTemplateMethodModelEx、ソートされたリストを返す Java で を記述し、それを でテンプレートにプルする'<#assign sortByTime = com.example.SortByTimeMethod'?new()>ことができます。書く<#list sortByTime(x.data.record) as s>

于 2013-01-15T19:44:27.333 に答える