1

我有一个带有以下for循环的jsp页面:

<c:forEach var="myItem" items="${itemsList}">

<table border="0" class="table_class">

        <tr>

            <td colspan="1" valign="bottom">Item #${myItem.item_number}
            </td>

            <td colspan="2" align="left"><b>Item Name : ${myItem.item_name}</b> 
            </td>


        </tr>

        <tr>
            <td class="gridcolumnclass">${myItem.item_desc}
            </td>

        </tr>

</table>

</c:forEach>

很明显,对于每个项目,都会发布两行,第一行有两列包含 ITEM_NUMBER 和 ITEM_NAME,而第二行包含 ITEM_DESCRIPTION。

例如,我有以下一组项目

1, banana, some_desc
2, banana, some_desc
3, apple, some_desc
4, banana, some_desc
5, banana, some_desc
6, apple, some_desc
7, apple, some_desc
8, banana, some_desc
9, apple, some_desc
10, apple, some_desc
11, banana, some_desc

如果将上面的列表传递给 for 循环,在显示屏上,将有两个香蕉,然后是一个苹果,然后是两个香蕉,然后是两个苹果,然后是一个香蕉,然后是两个苹果,最后是一个香蕉。

但是,我怎么能把苹果和香蕉放在一起呢?

我的显示器应该首先显示所有香蕉,然后是苹果。

谢谢阅读。

4

1 回答 1

0

我猜这组项目是一个对象(或数组)。Javascript 有 .sort() 函数,它可以接受一个函数。

function compare(a,b) {
    if (a.item_name < b.item_name)
        return -1;
    if (a.item_name > b.item_name)
        return 1;
    return 0;
}

myItem.sort(compare);

如果您想更进一步并使比较功能动态化。(所以你可以按另一个“字段”名称排序)是一个好的开始;)

如果您不能使用 Javascript 进行排序。是一个基于Java的解决方案。不过,它需要一些修改才能在您的情况下使用它。

希望这可以帮助。

于 2013-04-10T09:41:25.817 回答