JSP+Servlet培训班作业管理系统[19]–教师角色之作业打分功能实现

1. 本章任务

虽然我们还没开发学生提交作业内容,但是由于已经设计了数据库表结构,我们也可以先开发教师角色的作业批阅功能。

其实批阅就是对作业内容Job表的score一栏填入分数,本质上是update。

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

  1. 教师批阅的作业,必须是自己负责课程相关的作业。
  2. 可以通过先选择作业,然后查询出来该作业下所有的提交内容,然后逐一打分的方式来实现。

2. 配置作业批阅菜单

修改Constants.java

    // 教师拥有的菜单
		roleMenuMap.put("teacher", new String[][] { { "课程管理", "courseManage.jsp" }, { "作业题目管理", "titleManage.jsp" },
				{ "作业批阅", "jobCheck.jsp" } });

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. 作业批阅页面开发

主要内容是选择作业题目,然后查询按钮,最后是展示该题目下所有的作业内容。

<%@ 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">
				<tr>
					<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>
				</tr>
			</c:forEach>
		</table>
	</div>
</body>
</html>

5. 批阅选中作业内容

点击批阅后,加载该作业内容,跳转jobCheckEdit.jsp即可。其实相当于编辑了,这部分比较简单,直接放一下代码。

修改RouteServlet

    else if (childPage.equals("jobCheckEdit.jsp")) {// 批阅具体一个作业
			JobDao jobDao = new JobDao();
			String jobId = request.getParameter("jobId");
			Job job = jobDao.getById(Integer.parseInt(jobId));
			request.setAttribute("job", job);
		}

修改jobCheckEdit.jsp

<%@ 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>jobCheckEdit.jsp</title>
<link href="css/content.css" type="text/css" rel="stylesheet" />
</head>
<body>
	<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>
				</tr>
				<tr>
					<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>
				</tr>
				<tr>
					<td>作业内容:</td>
					<td><textarea name="jobContent" value="${job.jobContent}" rows="3" cols="30" readonly></textarea></td>
				</tr>
				<tr>
					<td>评分:</td>
					<td><input type="text" name="jobScore" value="${job.jobScore}" /></td>
				</tr>
			</table>
		</div>
		<div id="content_bottom">
			<input type="submit" value="保存"></input>
		</div>
	</form>
</body>
</html>

6. 提交批改

直接保存就行

7. 测试运行

效果如下,大功告成:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


如有问题请扫码联系我
在这里插入图片描述

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页