天天看點

JSP+Servlet教育訓練班作業管理系統[19]–教師角色之作業打分功能實作

1. 本章任務

雖然我們還沒開發學生送出作業内容,但是由于已經設計了資料庫表結構,我們也可以先開發教師角色的作業批閱功能。

其實批閱就是對作業内容Job表的score一欄填入分數,本質上是update。

但是在具體操作上需要注意:

教師批閱的作業,必須是自己負責課程相關的作業。

可以通過先選擇作業,然後查詢出來該作業下所有的送出内容,然後逐一打分的方式來實作。

2. 配置作業批閱菜單

修改Constants.java

   // 教師擁有的菜單

 roleMenuMap.put("teacher", new String[][] { { "課程管理", "courseManage.jsp" }, { "作業題目管理", "titleManage.jsp" },

   { "作業批閱", "jobCheck.jsp" } });

1

2

3

3. 進入作業批閱頁面攜帶資料

進入作業批閱界面時,需要先加載所有的作業題目。如果目前還指定了要查詢的作業題目編号,則顯示該作業題目下所有作業内容。

   else if (childPage.equals("jobCheck.jsp")) {// 作業批閱

  // 加載教師關聯的所有作業題目

  User loginUser = (User) request.getSession().getAttribute("loginUser");

  TitleDao titleDao = new TitleDao();

  request.setAttribute("titles", titleDao.getTitlesByUserId(loginUser.getUserId()));

  String selectedTitle = request.getParameter("selectedTitle");

  JobDao jobDao = new JobDao();

  List<Job> jobs = null;

  if (selectedTitle != null && !"".equals(selectedTitle)) { // 如果有選擇的作業題目,則加載該題目下所有作業内容

   jobs = jobDao.getJobsByTitleId(Integer.parseInt(selectedTitle));

  } else {// 否則設定一個空的清單

   jobs = new ArrayList<Job>();

  }

  request.setAttribute("jobs", jobs);

 }

4

5

6

7

8

9

10

11

12

13

14

15

4. 作業批閱頁面開發

主要内容是選擇作業題目,然後查詢按鈕,最後是展示該題目下所有的作業内容。

<%@ 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>jobCheck.jsp</title>

<link href="css/content.css" type="text/css" rel="stylesheet" />

</head>

<body>

<div id="content_top">作業批閱</div>

<div id="content_mid">

 <form method="get" action="/HomeworkSystem/RouteServlet">

  <input type="hidden" name="childPage" value="jobCheck.jsp"> <select

   name="selectedTitle">

   <c:forEach items="${titles}" var="item">

    <option value="${item.titleId}">${item.titleContent}</option>

   </c:forEach>

  </select> <input type="submit" value="查詢" />

 </form>

 <table class="table_theme1">

  <thead>

   <tr>

    <th>編号</th>

    <th>姓名</th>

    <th>時間</th>

    <th>内容</th>

    <th>得分</th>

    <th>操作</th>

   </tr>

  </thead>

  <c:forEach items="${jobs}" var="item">

    <td>${item.jobId}</td>

    <td>${item.jobUserName}</td>

    <td>${item.jobTime}</td>

    <td>${item.jobContent}</td>

    <td>${item.jobScore}</td>

    <td><a

     href="/HomeworkSystem/RouteServlet?childPage=jobCheckEdit.jsp&jobId=${item.jobId}">批閱</a></td>

  </c:forEach>

 </table>

</div>

</body>

</html>

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

5. 批閱選中作業内容

點選批閱後,加載該作業内容,跳轉jobCheckEdit.jsp即可。其實相當于編輯了,這部分比較簡單,直接放一下代碼。

修改RouteServlet

   else if (childPage.equals("jobCheckEdit.jsp")) {// 批閱具體一個作業

  String jobId = request.getParameter("jobId");

  Job job = jobDao.getById(Integer.parseInt(jobId));

  request.setAttribute("job", job);

修改jobCheckEdit.jsp

<title>jobCheckEdit.jsp</title>

<form action="/HomeworkSystem/JobServlet?method=jobCheckEdit" method="post">

 <div id="content_top">作業内容批閱</div>

 <div id="content_mid">

  <table class="table_theme1">

       <tr>

    <td>作業内容編号:</td>

    <td><input type="text" name="jobId" value="${job.jobId}"

     readonly /></td>

    <td>學生:</td>

    <td><input type="text" name="jobUserName"

     value="${job.jobUserName}" readonly /> <input type="hidden"

     name="jobTitle" value="${job.jobTitle}" /> <input type="hidden"

     name="jobUser" value="${job.jobUser}" /></td>

    <td>作業内容:</td>

    <td><textarea name="jobContent" value="${job.jobContent}" rows="3" cols="30" readonly></textarea></td>

    <td>評分:</td>

    <td><input type="text" name="jobScore" value="${job.jobScore}" /></td>

  </table>

 </div>

 <div id="content_bottom">

  <input type="submit" value="儲存"></input>

</form>

6. 送出批改

直接儲存就行

7. 測試運作

效果如下,大功告成:

JSP+Servlet教育訓練班作業管理系統[19]–教師角色之作業打分功能實作
JSP+Servlet教育訓練班作業管理系統[19]–教師角色之作業打分功能實作
JSP+Servlet教育訓練班作業管理系統[19]–教師角色之作業打分功能實作