1. 本章任务
之前已经实现了登录功能,要想使整个系统运转起来,首先就要建立教师和学生的档案信息,使学生和老师都能登录系统进行操作。
按我们的设计,培训学校的校长负责进行人员管理操作,包括管理校长、教师、学生,注意校长也可以有多个,避免有一个校长请假导致系统没法运转了。
本章的任务就是开发校长角色人员管理页面中浏览所有人员列表的功能。
2. 为校长角色添加人员管理菜单
修改Constants类,为校长角色添加人员管理页面usermanage.jsp。
public class Constants {
// 用于保存角色及对应的菜单信息
public static HashMap<String, String[][]> roleMenuMap = new HashMap<String, String[][]>();
// 使用static代码块对roleMenuMap进行初始化
static {
// 校长拥有的菜单
roleMenuMap.put("master", new String[][] { { "人员管理", "usermanage.jsp" } });
}
}
1
2
3
4
5
6
7
8
9
3. 携带人员列表信息进入人员管理页面
回忆下点击左侧菜单发生了什么,我们看下左侧菜单内容:
<div id="left">
<ul>
<c:forEach items="${loginMenus}" var="menu">
<li>
<a href="/HomeworkSystem/RouteServlet?childPage=${menu[1]}">${menu[0]}</a>
</li>
</c:forEach>
</ul>
</div>
1
2
3
4
5
6
7
8
9
其实点击左侧菜单后,会先进入RouteServlet,同时传递一个页面字符串参数(此处为'usermanage.jsp')给RouteServlet。RouteServlet会根据字符串跳转相应页面。
此处就需要注意了,我们跳转到人员管理页面时,是想显示当前所有用户列表的,所以应该查询出所有用户列表信息放入request对象中,然后传递给页面显示。
所以修改RouteServlet类如下:
@WebServlet("/RouteServlet")
public class RouteServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置输入输出格式、编码
response.setContentType("text/html");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
// 获取用户在网页输入的用户名和密码
String childPage = request.getParameter("childPage");
request.setAttribute("childPage", childPage);
if (childPage.equals("usermanage.jsp")) { // 进入人员管理页面需要携带人员列表信息
UserDao userDao = new UserDao();
List<User> users = userDao.getUsers();
request.setAttribute("users", users);
}
request.getRequestDispatcher("/index.jsp").forward(request, response);// 跳转到index.jsp
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
4. 在人员管理页面显示人员列表
新建userManage.jsp页面,此时可以通过<c:forEach>标签遍历users变量,将用户列表显示到页面上。
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><!-- 使用c:标签需要添加本行代码 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>userManage.jsp</title>
</head>
<body>
<table>
<thead>
<tr>
<th>编号</th>
<th>姓名</th>
<th>角色</th>
</tr>
</thead>
<c:forEach items="${users}" var="item">
<tr>
<td>${item.userId}</td>
<td>${item.userName}</td>
<td>${item.userRole}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
此时使用赵校长+123登录并点击左侧人员管理菜单后,即可查看人员列表了,效果如下:
5. 总结
可以从网页上查看所有用户数据,是一个巨大的进步,从此可以说这个网站有点用了。非常不错!