所以我正在做一个小人项目,但遇到了问题。我希望信息在页面加载时按字母顺序加载,但是我不知道该怎么做,有什么建议吗?谢谢。它已从以前的内容进行了更新。
<%@page import="campus.system.userdatamodel.Users"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<%@include file="/WEB-INF/jspf/loadDataModelSegment.jspf" %>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>List of Users</title>
</head>
<body>
<h1>Users</h1>
<div>
<table>
<tr>
<td>User Name</td>
<td>Delete</td>
</tr>
<%
Integer index;
index = 0;
for(Users currUser : mySystemUsers.getUserList())
{
out.println("<tr>");
out.println("<td>");
out.println(currUser.getName());
out.println("</td>");
out.println("<td>");
%>
<form method="post" action="ProcessUserServlet">
<input type="image" name="action" value="DELETE" src="/CampusSystemWebGUI/image/Delete.png" title="Delete User">
<input hidden="true" name="index" value=
<%
out.println("\"" + index.toString() + "\"");
%>
>
</form>
<%
index++;
out.println("</td>");
out.println("</tr>");
}
%>
</table>
</div>
<div>
<a href="/CampusSystemWebGUI">Main Menu</a>
</div>
</body>
</html>
最佳答案
您可以通过这种方式以自然顺序添加名称。
List<String> names = mySystemUsers.getUserList().stream()
.map(u -> u.getName())
.sorted(Comparator.naturalOrder())
.collect(Collectors.toList());
for (String name: names) {
out.println("<tr>");
out.println("<td>");
out.println(name);
out.println("</td>");
out.println("</tr>");
}
您似乎已经配置了Java 5,可以尝试使用它。
List<String> names = new ArrayList<String>();
for(Users user: mySystemUsers.getUserList()) {
names.add(user.getName());
}
Collections.sort(names);
for (String name: names) {
out.println("<tr>");
out.println("<td>");
out.println(name);
out.println("</td>");
out.println("</tr>");
}
注意:单个用户确实应该有一个名为
User
而不是Users
的类注意:这需要Java 8