虽然我们还没开发学生提交作业内容,但是由于已经设计了数据库表结构,我们也可以先开发教师角色的作业批阅功能。
其实批阅就是对作业内容Job表的score一栏填入分数,本质上是update。
但是在具体操作上需要注意:
教师批阅的作业,必须是自己负责课程相关的作业。可以通过先选择作业,然后查询出来该作业下所有的提交内容,然后逐一打分的方式来实现。修改Constants.java
// 教师拥有的菜单 roleMenuMap.put("teacher", new String[][] { { "课程管理", "courseManage.jsp" }, { "作业题目管理", "titleManage.jsp" }, { "作业批阅", "jobCheck.jsp" } });进入作业批阅界面时,需要先加载所有的作业题目。如果当前还指定了要查询的作业题目编号,则显示该作业题目下所有作业内容。
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); }主要内容是选择作业题目,然后查询按钮,最后是展示该题目下所有的作业内容。
<%@ 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>点击批阅后,加载该作业内容,跳转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>直接保存就行
效果如下,大功告成:
如有问题请扫码联系我