?? testpaperaction.java
字號:
package com.qrsx.exam.struts.action;
import java.io.IOException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.qrsx.exam.Constants;
import com.qrsx.exam.dao.DAOFactory;
import com.qrsx.exam.dao.StudentDAO;
import com.qrsx.exam.dao.TeacherDAO;
import com.qrsx.exam.dao.TestPaperDAO;
import com.qrsx.exam.model.Classes;
import com.qrsx.exam.model.SelectQuestion;
import com.qrsx.exam.model.Student;
import com.qrsx.exam.model.Teacher;
import com.qrsx.exam.model.TestPaper;
import com.qrsx.exam.model.TestResult;
import com.qrsx.exam.model.User;
import com.qrsx.exam.model.YesNoQuestion;
import com.qrsx.exam.struts.BaseAction;
import com.qrsx.exam.struts.form.TestPaperForm;
import com.qrsx.exam.util.BeanUtils;
import com.qrsx.exam.util.StringUtils;
/**
* The Action about test paper
*
* @struts.action name="testPaperForm" path="/exam/testpaper" scope="request"
* input="/exam/testpaper_list.jsp" validate="false"
* parameter="p"
*
* @struts.action-forward name="add" path="/exam/testpaper_add.jsp"
*
* @struts.action-forward name="list" path="/exam/testpaper_list.jsp"
*
* @struts.action-forward name="update" path="/exam/testpaper_update.jsp"
*
* @struts.action-forward name="stulist" path="/exam/testpaper_stulist.jsp"
*
* @struts.action-forward name="result" path="/exam/testpaper_result.jsp"
*
* @author galaxy
*
*/
public class TestPaperAction extends BaseAction {
protected final Log log = LogFactory.getLog(getClass());
/**
* 獲得試卷列表
*/
public ActionForward list(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
HttpSession session = request.getSession();
// 得到當前登錄教師的信息
User u = (User) session.getAttribute(Constants.SESSION_USER);
// 取得該教師所發布的試卷信息
TeacherDAO dao = DAOFactory.getDao(TeacherDAO.class);
Teacher t = dao.findById(u.getId(), false);
Set<TestPaper> papers = t.getPapers();
request.setAttribute("papers", papers);
// 返回試卷列表頁面
return mapping.findForward("list");
}
/**
* 進入試卷錄入頁面
*/
public ActionForward addin(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
return mapping.findForward("add");
}
/**
* 試卷信息的保存功能
*/
public ActionForward save(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
// 得到用戶提交的試卷信息
TestPaper paper = BeanUtils.copyProperties(new TestPaper(), form);
// 取得當前登錄教師
HttpSession session = request.getSession();
Teacher t = (Teacher) session
.getAttribute(Constants.SESSION_USER);
// 設置提示信息
if (StringUtils.isEmpty(((TestPaperForm) form).getId())) {
// 保存試卷信息
TeacherDAO teacherdao = DAOFactory.getDao(TeacherDAO.class);
t = teacherdao.findById(t.getId(), false);
paper.setTeacher(t);
TestPaperDAO paperdao = DAOFactory.getDao(TestPaperDAO.class);
paperdao.makePersistent(paper);
addMessage(request, "testpaper.msg.add.success");
TestPaperForm paperform = (TestPaperForm) form;
paperform.setExamtime(null);
paperform.setTitle(null);
return mapping.findForward("add");
} else {
// 修改試卷信息
TestPaperDAO dao = DAOFactory.getDao(TestPaperDAO.class);
TestPaper tp = dao.findById(paper.getId(), false);
tp.setTitle(paper.getTitle());
tp.setExamtime(paper.getExamtime());
addMessage(request, "testpaper.msg.update.success");
return list(mapping, form, request, response);
}
}
/**
* 進入試卷修改頁面的Action方法
*/
public ActionForward updatein(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
// 得到用戶提交的信息
TestPaperForm paperform = (TestPaperForm) form;
// 檢索用戶要修改的試卷對象
TestPaperDAO dao = DAOFactory.getDao(TestPaperDAO.class);
TestPaper paper = dao.findById(paperform.getId(), false);
if (paper == null) {
addMessage(request, "testpaper.msg.update.notexist");
return list(mapping, form, request, response);
} else {
request.setAttribute("paper", paper);
}
// 跳轉到試卷修改頁面
return mapping.findForward("update");
}
/**
* 試卷刪除功能
*/
public ActionForward delete(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
// 得到用戶提交的參數
TestPaperForm paperform = (TestPaperForm) form;
// 得到試卷的基本信息
TestPaperDAO dao = DAOFactory.getDao(TestPaperDAO.class);
TestPaper paper = dao.findById(paperform.getId(), false);
if (paper != null) {
// 刪除試卷
paper.getTeacher().getPapers().remove(paper);
dao.makeTransient(paper);
addMessage(request, "testpaper.msg.delete.success");
} else {
addMessage(request, "testpaper.msg.update.notexist");
}
return list(mapping, form, request, response);
}
/**
* 獲得學生試卷列表的Action方法
*/
public ActionForward stulist(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
// 得到Session對象的實例
HttpSession session = request.getSession();
// 得到當前登錄用戶的信息
User u = (User) session.getAttribute(Constants.SESSION_USER);
if (u != null) {
// 得到學生對象
StudentDAO stuDAO = DAOFactory.getDao(StudentDAO.class);
Student student = stuDAO.findById(u.getId(), false);
// 得到學生所在的班級
Classes classes = student.getClasses();
// 得到班級的任課教師
Set<Teacher> teachers = classes.getTeachers();
// 得到這些任課教師所發布的所有的試卷
Set<TestPaper> papers = new HashSet<TestPaper>();
Iterator<Teacher> it = teachers.iterator();
while (it.hasNext()) {
Teacher t = it.next();
papers.addAll(t.getPapers());
}
request.setAttribute("papers", papers);
}
// 跳轉到試卷列表頁面
return mapping.findForward("stulist");
}
/**
* 自動判卷Action方法
*/
public ActionForward exam(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
// 得到用戶提交的試卷參數
TestPaperForm paperform = (TestPaperForm) form;
// 得到試卷的信息
TestPaperDAO dao = DAOFactory.getDao(TestPaperDAO.class);
TestPaper paper = dao.findById(paperform.getId(), false);
if (paper != null) {
// 初始化考試結果Bean
TestResult result = new TestResult();
// 選擇題
Set<SelectQuestion> selects = paper.getSelectquestions();
Iterator<SelectQuestion> itSelects = selects.iterator();
while (itSelects.hasNext()) {
SelectQuestion select = itSelects.next();
String answer = request.getParameter(select.getId());
result.addScore(select.getScore(answer));
result.addTotalScore(select.getScore());
}
// 判斷題
Set<YesNoQuestion> yesnos = paper.getYesnoquestions();
Iterator<YesNoQuestion> itYesNo = yesnos.iterator();
while (itYesNo.hasNext()) {
YesNoQuestion yesno = itYesNo.next();
String answer = request.getParameter(yesno.getId());
result.addScore(yesno.getScore(answer));
result.addTotalScore(yesno.getScore());
}
// 設置考試的結果
request.setAttribute("testresult", result);
addMessage(request, "testpaper.msg.delete.success");
} else {
addMessage(request, "testpaper.msg.update.notexist");
}
// 跳轉到結果頁面
return mapping.findForward("result");
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -