2

リストの表示と並べ替えに使用displaytagしていますが、並べ替えに問題があります。日付のプロパティ orderdate 形式は ですThursday 31 Jan 2012 13:10。したがって、この列を並べ替えると、日付が日ごとにグループ化されます。そこで、別のプロパティsortOrderDate形式を作成し、以下2012 01 31 13:10のように使用しましたsortProperty

<display:column title="Order Date" property="orderDate" 
                    sortProperty="sortOrderDate"></display:column>
<display:column property="sortOrderDate" 
         class="hidden" headerClass="hidden" sortable="true"></display:column>

ここで正確にやりたいことはorderdate、UI に表示して並べ替えますsortOrderDate。なにか提案を?

4

1 に答える 1

2

まず、データが日付の場合、文字列としてではなく、日付として保存する必要があります。日付インスタンスは、辞書式順序ではなく、時系列で自然に並べ替えられます。

orderDateしたがって、Dateタイプのプロパティが必要です。そして、それを列に表示し、時系列で並べ替えるには、コードは単純になります(JSTLを使用していて、表示テーブルのIDがであると仮定しますorder)。

<display:column title="Order Date" sortProperty="orderDate">
    <fmt:formatDate value="order.orderDate"/>
</display:column>

もちろん、タグの、、、および属性を使用してtype、日付の形式をカスタマイズできます。http://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/fmt/formatDate.htmlを参照してください。dateStyletimeStylepattern<fmt:formatDate>

同じ手法を使用して文字列を表示し、別の文字列プロパティを使用して並べ替えることができますが、設計が非常に悪いです。

<display:column title="Order Date" sortProperty="sortOrderDate">
    ${order.orderDate}
</display:column>
于 2013-01-08T14:15:02.673 に答える