如何在JSP中对对象列表进行排序

时间:2015-03-25 03:10:11

标签: javascript jquery jsp spring-mvc

我有一个将向用户显示的项目列表。我知道我可以将列表发送到后端进行排序,对它们进行排序并再次显示它们,但是如何在前端进行排序,因此无需将列表发送到后端。

我找到this table,但它会在列中显示结果。如你所见,我想以特定的方式展示它们。

<div class="row">
            <div class="col-md-4">
                <c:forEach var="item" items="${products}">
                    <div style="text-align: left;">
                      <div>
                         Name: ${item.name}
                      </div>
                      <div>
                        Price: ${item.price}
                      </div>
                   </div>
                 --------------------------
                </c:forEach>
            </div>
</div>

输出不是像

那样的表
Name: item1
Price: 12
---------------
Name: item2
Price: 23
----------------

1 个答案:

答案 0 :(得分:2)

您可以对元素进行排序,看一下我按照数字排序的例子:

http://jsfiddle.net/tnnqyxcw/1/

JS:

$(document).ready(function(){
    $('button').on('click', function(){
        var s = $(this).data('sort'); console.log(s);
        if(s === 0){
            $(this).data('sort', 1);
            $('.clist div').sort(function(a,b){
               return a.dataset.sid < b.dataset.sid
            }).appendTo('.clist')            
        }else{
            $(this).data('sort', 0);
            $('.clist div').sort(function(a,b){
               return a.dataset.sid > b.dataset.sid
            }).appendTo('.clist')
        }
    });
});

HTML

<button data-sort="0">Sort:</button><br>
<div class="clist">
    <div data-sid=1>Number 1</div>
    <div data-sid=4>Number 4</div>
    <div data-sid=3>Number 3</div>
    <div data-sid=1>Number 1</div>
    <div data-sid=4>Number 4</div>
    <div data-sid=2>Number 2</div>
    <div data-sid=1>Number 1</div>
</div>

因此,您可以使用data-对所需内容进行排序,然后将点击分配给按钮或任何您想要的内容。

我希望能有所帮助。