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>
其實點選左側菜單後,會先進入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
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">
<td>${item.userId}</td>
<td>${item.userName}</td>
<td>${item.userRole}</td>
</c:forEach>
</table>
</body>
</html>
19
20
21
22
23
24
25
26
此時使用趙校長+123登入并點選左側人員管理菜單後,即可檢視人員清單了,效果如下:

5. 總結
可以從網頁上檢視所有使用者資料,是一個巨大的進步,從此可以說這個網站有點用了。非常不錯!