gpt4 book ai didi

java - 如何按多个字段对客户端的java对象进行排序?

转载 作者:行者123 更新时间:2023-11-30 17:04:03 25 4
gpt4 key购买 nike

我正在使用 tomcat、jsp、servlet 和 log4j 做我的第一个项目。

我有一个 Faculty 实体,其特征是 ID、名称、预算席位和总席位:

public class Faculty {
private int id;
private String name;
private byte budgetSeats;
private byte totalSeats;
...
}

并且用户应该能够对 List<Faculty> 进行排序按名称、总席位和预算席位传递给 jsp 页面:

<select>
<option value="name">Faculty name</option>
<option value="budgetSeats">Budget seats</option>
<option value="totalSeats">Total Seats</option>
</select>
...
<table>
<thead>
<tr>
<td>Faculty name</td>
<td>Faculty budget seats</td>
<td>Faculty total seats</td>
</tr>
</thead>
<tbody></tbody>
<c:forEach var="faculty" items="${faculties}">
<tr>
<td><a
href="<c:url value="controller?command=viewFaculty"> <c:param name="name" value="${faculty.name}"/></c:url>"><c:out
value="${faculty.name}"></c:out></a></td>
<td><c:out value="${faculty.totalSeats}"></c:out></td>
<td><c:out value="${faculty.budgetSeats}"></c:out></td>
</tr>
</c:forEach>
</table>

我不想使用 Comparator 对这个数组进行排序每次用户请求排序。我如何在客户端对其进行排序?如果需要知道 javascript你会产生一些代码示例吗?

最佳答案

这可以使用 tablesorter jquery 插件来实现。

下面是 html 代码 - 请注意,我省略了特定于 jsp 的内容,因为这与答案无关。记得下载此插件并将其放在可访问的位置

<html>
<head>
<link rel="stylesheet" href="themes/blue/style.css" type="text/css" id="" media="print, projection, screen" />
</head>
<script src="http://code.jquery.com/jquery-latest.min.js"
type="text/javascript"></script>
<script type="text/javascript" src="jquery.tablesorter.min.js"></script>
<script type="text/javascript" id="js">

$(document).ready(function()
{
$("#myTable").tablesorter();
}
);

</script>
<body>
<select id="MySorter">
<option value="name">Faculty name</option>
<option value="budgetSeats">Budget seats</option>
<option value="totalSeats">Total Seats</option>
</select>

<table id="myTable" class="tablesorter">
<thead>
<tr>
<th>Faculty name</th>
<th>Faculty budget seats</th>
<th>Faculty total seats</th>

</tr>
</thead>
<tbody>
<tr>
<td>Smith</td>
<td>20</td>
<td>15</td>

</tr>
<tr>
<td>Doe</td>
<td>30</td>
<td>10</td>

</tr>
<tr>
<td>Bach</td>
<td>10</td>
<td>10</td>

</tr>
<tr>
<td>Conway</td>
<td>40</td>
<td>50</td>

</tr>
</tbody>
</table>

</body>



<script>

$(document).ready(function()
{
$( "#MySorter" ).change(function() {
//alert('value-'+$( "#MySorter" ).val());
var sortColumn = $( "#MySorter" ).val();
if(sortColumn == 'name'){
$("#myTable").tablesorter( {sortList: [[0,0]]} );
}else if(sortColumn == 'budgetSeats') {
$("#myTable").tablesorter( {sortList: [[1,0]]} );
}else if(sortColumn == 'totalSeats'){
$("#myTable").tablesorter( {sortList: [[2,0]]} );
}

});
}
);
</script>
</html>

关于java - 如何按多个字段对客户端的java对象进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28340190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com