您的位置:首页 > 编程语言 > Java开发

JavaWeb项目开发案例精粹-第3章在线考试系统-005action层

2016-03-25 17:37 387 查看
1.

<?xml version="1.0" encoding="UTF-8" ?><!-- XML声明 -->
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd"><!-- 指定Struts 2配置文件的DTD信息 -->
<struts><!-- 根节点 -->
<constant name="struts.i18n.encoding" value="gb2312"></constant>
<package name="struts2" extends="struts-default">
<action name="login" class="com.sanqing.action.LoginAction">
<result name="studentSuccess" type="chain">getRandomSubject</result><!--进入考试页面-->
<result name="teacherSuccess" type="redirect">/teacher/index.html</result><!--老师登录成功页面-->
<result name="input">/login.jsp</result><!--登录失败页面-->
</action>
<action name="subjectAdd" class="com.sanqing.action.SubjectAddAction">
<result name="success" type="redirect">/teacher/subjectAdd.jsp</result><!--重定向到试题添加页面-->
<result name="input">/teacher/subjectAdd.jsp</result><!--请求转发到试题添加页面-->
</action>
<action name="subjectQuery" class="com.sanqing.action.QuerySubjectAction">
<result name="success">/teacher/subjectManage.jsp</result><!--跳转到试题列表管理页面-->
</action>
<action name="subjectParticular" class="com.sanqing.action.SubjectParticularAction">
<result name="success">/teacher/subjectShow.jsp</result><!--跳转到试题详细显示页面-->
</action>
<action name="subjectUpadateBefore" class="com.sanqing.action.SubjectUpdateBefore">
<result name="success">/teacher/subjectUpdate.jsp</result><!--跳转到试题更新页面-->
</action>
<action name="subjectUpadate" class="com.sanqing.action.SubjectUpdateAction">
<result name="success">/teacher/subjectUpdate.jsp</result><!--跳转到试题更新页面-->
</action>
<action name="subjectLikeQuery" class="com.sanqing.action.LikeQuerySubjectAction">
<result name="success">/teacher/subjectManage.jsp</result><!--跳转到试题列表管理页面-->
</action>
<action name="getRandomSubject" class="com.sanqing.action.GetRandomSubject">
<result name="success">/student/index.jsp</result><!--跳转到考试页面-->
</action>
<action name="submitExam" class="com.sanqing.action.SubmitExamAction">
<result name="success">/student/examResult.jsp</result><!--跳转到考试页面-->
</action>
<action name="showSubjectAnswer" class="com.sanqing.action.ShowSubjectAnswer">
<result name="success">/student/showAnswer.jsp</result><!--跳转到考试页面-->
</action>
<action name="queryStudentByName" class="com.sanqing.action.QueryStudentByName">
<result name="success">/teacher/studentManage.jsp</result><!--跳转到学生管理页面-->
</action>
<action name="queryStudentByClass" class="com.sanqing.action.QueryStudentByClass">
<result name="success">/teacher/studentManage.jsp</result><!--跳转到学生管理页面-->
</action>
</package>
</struts>


2.

package com.sanqing.action;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.po.Subject;
import com.sanqing.service.SubjectService;
import com.sanqing.service.SubjectServiceImpl;

/*
* 获得随机试题
*/
public class GetRandomSubject extends ActionSupport{
private SubjectService subjectService = new SubjectServiceImpl();
public String execute() throws Exception {
List<Subject> subjects = subjectService.randomFindSubject(20);//获得试题记录
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("subjects", subjects);
return SUCCESS;
}
}


3.

package com.sanqing.action;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.po.Subject;
import com.sanqing.service.SubjectService;
import com.sanqing.service.SubjectServiceImpl;
import com.sanqing.util.Page;
import com.sanqing.util.PageResult;

public class LikeQuerySubjectAction extends ActionSupport {
private String subjectTitle;    //试题标题
private int currentPage;        //当前页
private SubjectService subjectService = new SubjectServiceImpl();

public int getCurrentPage() {
return currentPage;
}

public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}

public String getSubjectTitle() {
return subjectTitle;
}

public void setSubjectTitle(String subjectTitle) {
this.subjectTitle = subjectTitle;
}

public String execute() throws Exception {
Page page = new Page();
page.setEveryPage(10);//每页显示10条记录
page.setCurrentPage(currentPage);//设置当前页
PageResult pageResult = subjectService.likeQueryBySubjectTitle(subjectTitle, page);
List<Subject> subjects = pageResult.getList();//获得试题记录
List<Subject> newSubjects = new ArrayList<Subject>();//新的记录
//给关键字标红
for(Subject subject : subjects) {
String newTitle = subject.getSubjectTitle().replaceAll(subjectTitle,
"<font color='red'>" + subjectTitle + "</font>");
subject.setSubjectTitle(newTitle);
newSubjects.add(subject);
}

page = pageResult.getPage();//获得分页信息
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("subjects", newSubjects);
request.setAttribute("page", page);
return SUCCESS;
}
}


4.

package com.sanqing.action;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.po.Student;
import com.sanqing.service.StudentService;
import com.sanqing.service.StudentServiceImpl;
import com.sanqing.service.TeacherService;
import com.sanqing.service.TeacherServiceImpl;

public class LoginAction extends ActionSupport {
private String id;             // 接受用户编号
private String password;    // 接受用户密码
private String role;        // 接受用户角色
private StudentService studentService =
new StudentServiceImpl();//学生业务逻辑组件引用
private TeacherService teacherService =
new TeacherServiceImpl();//教师业务逻辑组件引用

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public String getRole() {
return role;
}

public void setRole(String role) {
this.role = role;
}

public String execute() throws Exception {
if("student".equals(role)) {//如果以学生身份登录
if(studentService.allowLogin(id, password)) {
Student studentInfo = studentService.getStudentInfo(id);
//保存学生记录到session范围
Map session = ActionContext.getContext().getSession();
session.put("studentInfo", studentInfo);
return "studentSuccess";
}else {
addActionError("该学生编号不存在,或者密码不正确!");
return this.INPUT;
}
}else {
if(teacherService.allowLogin(id, password)) {
return "teacherSuccess";
}else {
addActionError("该教师编号不存在,或者密码不正确!");
return this.INPUT;
}
}
}
}


5.

package com.sanqing.action;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.po.Student;
import com.sanqing.service.StudentService;
import com.sanqing.service.StudentServiceImpl;

public class QueryStudentByClass extends ActionSupport{
private String sclass;
private StudentService studentService = new StudentServiceImpl();
public String getSclass() {
return sclass;
}

public void setSclass(String sclass) {
this.sclass = sclass;
}
public String execute() throws Exception {
HttpServletRequest request = ServletActionContext.getRequest();
List<Student> students = studentService.getStudentByClass(sclass);
request.setAttribute("students", students);
return this.SUCCESS;
}

}


6.

package com.sanqing.action;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.po.Student;
import com.sanqing.service.StudentService;
import com.sanqing.service.StudentServiceImpl;

public class QueryStudentByName extends ActionSupport{
private String studentName;
private StudentService studentService = new StudentServiceImpl();
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public String execute() throws Exception {
HttpServletRequest request = ServletActionContext.getRequest();
List<Student> students = studentService.getStudentByName(studentName);
request.setAttribute("students", students);
return this.SUCCESS;
}

}


7.

package com.sanqing.action;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.po.Subject;
import com.sanqing.service.SubjectService;
import com.sanqing.service.SubjectServiceImpl;
import com.sanqing.util.Page;
import com.sanqing.util.PageResult;

public class QuerySubjectAction extends ActionSupport {
private int currentPage;        //当前页
private SubjectService subjectService = new SubjectServiceImpl();

public int getCurrentPage() {
return currentPage;
}

public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}

public String execute() throws Exception {
Page page = new Page();
page.setEveryPage(10);//每页显示10条记录
page.setCurrentPage(currentPage);//设置当前页
PageResult pageResult = subjectService.querySubjectByPage(page);
List<Subject> subjects = pageResult.getList();//获得试题记录
page = pageResult.getPage();//获得分页信息
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("subjects", subjects);
request.setAttribute("page", page);
return SUCCESS;
}
}


8.

package com.sanqing.action;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.po.Subject;
import com.sanqing.service.SubjectService;
import com.sanqing.service.SubjectServiceImpl;

/*
* 显示试题答案
*/
public class ShowSubjectAnswer extends ActionSupport{
private SubjectService subjectService = new SubjectServiceImpl();
public String execute() throws Exception {
List<Subject> subjects = new ArrayList<Subject>();//保存学生考过的题目
HttpServletRequest request = ServletActionContext.getRequest();
Map session = ActionContext.getContext().getSession();
List<Integer> subjectIDs = (List<Integer>) session.get("subjectIDs");
for(Integer subjectID : subjectIDs) {
Subject subject = subjectService.showSubjectParticular(subjectID);//通过试题编号查找试题
subjects.add(subject);
}
request.setAttribute("subjects", subjects);
return SUCCESS;
}
}


9.

package com.sanqing.action;

import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.po.Subject;
import com.sanqing.service.SubjectService;
import com.sanqing.service.SubjectServiceImpl;

//该Action用来接收试题参数,并调用业务逻辑组件SubjectService来完成试题添加
public class SubjectAddAction extends ActionSupport{
private String subjectTitle;
private String subjectOptionA;
private String subjectOptionB;
private String subjectOptionC;
private String subjectOptionD;
private String subjectAnswer;
private String subjectParse;
private SubjectService subjectService = new SubjectServiceImpl();

public String getSubjectTitle() {
return subjectTitle;
}
public void setSubjectTitle(String subjectTitle) {
this.subjectTitle = subjectTitle;
}
public String getSubjectOptionA() {
return subjectOptionA;
}
public void setSubjectOptionA(String subjectOptionA) {
this.subjectOptionA = subjectOptionA;
}
public String getSubjectOptionB() {
return subjectOptionB;
}
public void setSubjectOptionB(String subjectOptionB) {
this.subjectOptionB = subjectOptionB;
}
public String getSubjectOptionC() {
return subjectOptionC;
}
public void setSubjectOptionC(String subjectOptionC) {
this.subjectOptionC = subjectOptionC;
}
public String getSubjectOptionD() {
return subjectOptionD;
}
public void setSubjectOptionD(String subjectOptionD) {
this.subjectOptionD = subjectOptionD;
}
public String getSubjectAnswer() {
return subjectAnswer;
}
public void setSubjectAnswer(String subjectAnswer) {
this.subjectAnswer = subjectAnswer;
}
public String getSubjectParse() {
return subjectParse;
}
public void setSubjectParse(String subjectParse) {
this.subjectParse = subjectParse;
}
public String execute() throws Exception {
Subject subject = new Subject();
subject.setSubjectTitle(subjectTitle);
subject.setSubjectOptionA(subjectOptionA);
subject.setSubjectOptionB(subjectOptionB);
subject.setSubjectOptionC(subjectOptionC);
subject.setSubjectOptionD(subjectOptionD);
subject.setSubjectAnswer(subjectAnswer);
subject.setSubjectParse(subjectParse);
if(subjectService.saveSubject(subject)) {
return SUCCESS;
}else {
this.addActionError("该试题已经添加过了,请不要重复添加!");
return INPUT;
}
}
}


10.

package com.sanqing.action;

import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.service.SubjectService;
import com.sanqing.service.SubjectServiceImpl;

public class SubjectDeleteAction extends ActionSupport{
private int subjectID;
private SubjectService subjectService = new SubjectServiceImpl();
public int getSubjectID() {
return subjectID;
}
public void setSubjectID(int subjectID) {
this.subjectID = subjectID;
}
public String execute() throws Exception {
subjectService.deleteSubject(subjectID);
return SUCCESS;
}
}


11.

package com.sanqing.action;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.po.Subject;
import com.sanqing.service.SubjectService;
import com.sanqing.service.SubjectServiceImpl;
/*
* 查看试题详细信息
*/
public class SubjectParticularAction extends ActionSupport{
private int subjectID;
private SubjectService subjectService = new SubjectServiceImpl();
public int getSubjectID() {
return subjectID;
}
public void setSubjectID(int subjectID) {
this.subjectID = subjectID;
}
public String execute() throws Exception {
Subject subject = subjectService.showSubjectParticular(subjectID);
ServletActionContext.getRequest().setAttribute("subject", subject);
return SUCCESS;
}
}


12.

package com.sanqing.action;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.po.Subject;
import com.sanqing.service.SubjectService;
import com.sanqing.service.SubjectServiceImpl;

public class SubjectUpdateAction extends ActionSupport{
private int subjectID;
private String subjectTitle;
private String subjectOptionA;
private String subjectOptionB;
private String subjectOptionC;
private String subjectOptionD;
private String subjectAnswer;
private String subjectParse;
private SubjectService subjectService = new SubjectServiceImpl();

public int getSubjectID() {
return subjectID;
}
public void setSubjectID(int subjectID) {
this.subjectID = subjectID;
}
public String getSubjectTitle() {
return subjectTitle;
}
public void setSubjectTitle(String subjectTitle) {
this.subjectTitle = subjectTitle;
}
public String getSubjectOptionA() {
return subjectOptionA;
}
public void setSubjectOptionA(String subjectOptionA) {
this.subjectOptionA = subjectOptionA;
}
public String getSubjectOptionB() {
return subjectOptionB;
}
public void setSubjectOptionB(String subjectOptionB) {
this.subjectOptionB = subjectOptionB;
}
public String getSubjectOptionC() {
return subjectOptionC;
}
public void setSubjectOptionC(String subjectOptionC) {
this.subjectOptionC = subjectOptionC;
}
public String getSubjectOptionD() {
return subjectOptionD;
}
public void setSubjectOptionD(String subjectOptionD) {
this.subjectOptionD = subjectOptionD;
}
public String getSubjectAnswer() {
return subjectAnswer;
}
public void setSubjectAnswer(String subjectAnswer) {
this.subjectAnswer = subjectAnswer;
}
public String getSubjectParse() {
return subjectParse;
}
public void setSubjectParse(String subjectParse) {
this.subjectParse = subjectParse;
}
public String execute() throws Exception {
Subject subject = new Subject();
subject.setSubjectID(subjectID);
subject.setSubjectTitle(subjectTitle);
subject.setSubjectOptionA(subjectOptionA);
subject.setSubjectOptionB(subjectOptionB);
subject.setSubjectOptionC(subjectOptionC);
subject.setSubjectOptionD(subjectOptionD);
subject.setSubjectAnswer(subjectAnswer);
subject.setSubjectParse(subjectParse);
subjectService.updateSubject(subject);//更新
ServletActionContext.getRequest().setAttribute("subject", subject);
this.addActionMessage("更新成功!");
return SUCCESS;
}
}


13.

package com.sanqing.action;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.po.Subject;
import com.sanqing.service.SubjectService;
import com.sanqing.service.SubjectServiceImpl;

/*
* 获得更新试题前的试题
*/
public class SubjectUpdateBefore extends ActionSupport {
private int subjectID;
private SubjectService subjectService = new SubjectServiceImpl();
public int getSubjectID() {
return subjectID;
}
public void setSubjectID(int subjectID) {
this.subjectID = subjectID;
}
public String execute() throws Exception {
Subject subject = subjectService.showSubjectParticular(subjectID);
ServletActionContext.getRequest().setAttribute("subject", subject);
return SUCCESS;
}
}


14.

package com.sanqing.action;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.po.Student;
import com.sanqing.service.StudentService;
import com.sanqing.service.StudentServiceImpl;
import com.sanqing.service.SubjectService;
import com.sanqing.service.SubjectServiceImpl;

/*
* 提交试卷,并打分
*/
public class SubmitExamAction extends ActionSupport{
private List<Integer> subjectID;//学生考试的题目
private SubjectService subjectService = new SubjectServiceImpl();
private StudentService studentService = new StudentServiceImpl();
public List<Integer> getSubjectID() {
return subjectID;
}
public void setSubjectID(List<Integer> subjectID) {
this.subjectID = subjectID;
}
public String execute() throws Exception {
HttpServletRequest request = ServletActionContext.getRequest();
List<String> studentAnswers = new ArrayList<String>();
for(int i = 0; i < 20; i++) {
String answer = request.getParameter("subjectAnswer"+i);
studentAnswers.add(answer);
}
int GeneralPoint = subjectService.accountResult(subjectID, studentAnswers);

//设置成绩到学生信息中
Map session = ActionContext.getContext().getSession();
Student student = (Student)session.get("studentInfo");
String studentID = student.getStudentID();
studentService.setStudentResult(studentID, GeneralPoint);
request.setAttribute("studentName", student.getStudentName());//保存学生姓名和总分数
request.setAttribute("GeneralPoint", GeneralPoint);
session.put("subjectIDs", subjectID);//将考试题目保存到session,方便后面显示答案使用
return SUCCESS;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: