scoremanaction.java
来自「培训考试系统代码」· Java 代码 · 共 524 行 · 第 1/2 页
JAVA
524 行
package com.huawei.icd30.agt.exam;
import javax.servlet.http.*;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import com.huawei.icd30.agt.util.*;
import com.huawei.icd30.common.db.*;
/**
* <p> 从ScoreManForm类中提取从评阅考卷模块页面提交的数据信息,
* 进行所评阅试卷的查询,处理所评阅的答卷的Action类。</p>
* <p> </p>
* <p> </p>
* @author 龙燕茜
* @version 1.0
*/
public class ScoreManAction extends Action
{
public ActionForward perform(ActionMapping mapping,
ActionForm form, HttpServletRequest req,
HttpServletResponse res)
{
//判断session是否超时
//ActionForward checkForword = Tools.checkSession(req,res);
//if(checkForword != null)
//{
// return checkForword;
//}
//获取操作类型
String opeType = ((ScoreManForm)form).getOpeType();//从form中获取
if(opeType.equalsIgnoreCase(OperatorFlagCode.SCOREMAN_GETLIST) ||
opeType.equalsIgnoreCase(OperatorFlagCode.SCOREMAN_QUERY)
)
{//获取评阅考试列表
return getScoreList(mapping,form,req,res);
}
else if(opeType.equalsIgnoreCase(OperatorFlagCode.SCOREMAN_GETDETAIL))
{//获取所评阅考卷的试题信息
return getScoreDetail(mapping,form,req,res);
}
else if(opeType.equalsIgnoreCase(OperatorFlagCode.SCOREMAN_DEALSCORE))
{//处理所评卷的得分
return dealScore(mapping,form,req,res);
}
else if(opeType.equalsIgnoreCase(OperatorFlagCode.SCOREMAN_GETEXAMNAME))
{//处理所评卷的得分
return getExamName(mapping,form,req,res);
}
///:huangyuyuan add 2004-06-03
else if(opeType.equalsIgnoreCase(OperatorFlagCode.SCOREMAN_MODIFYLIST) ||
opeType.equalsIgnoreCase(OperatorFlagCode.SCOREMAN_MODIFY_QUERY))
{//获取已经评阅的试卷列表
return getScoreModifyList(mapping,form,req,res);
}
else if(opeType.equalsIgnoreCase(OperatorFlagCode.SCOREMAN_MODIFY))
{//获取所评阅考卷的试题信息
return getScoreModifyDetail(mapping,form,req,res);
}
///:~
else
{//操作类型错误,定向到错误页面,错误编码:UNKNOW_ERROR
req.setAttribute("errorId",ErrorCode.UNKNOW_ERROR);
return (mapping.findForward("error"));
}
}
/**
* 获取评阅考试列表
*/
private ActionForward getScoreList(ActionMapping mapping,
ActionForm form, HttpServletRequest req,
HttpServletResponse res)
{
//获取操作类型
String opeType = ((ScoreManForm)form).getOpeType();//从form中获取
//从Session中获取工号
String staffNo = (String)req.getSession().getAttribute("workerNo");
//定义连接的实例
SysDbConn aplcoms = null;
try
{
//得到一个连接的实例
aplcoms = SysConnPool.getInstance().getAplComs();
SysResultSet rs2 = null;
if(opeType.equalsIgnoreCase(OperatorFlagCode.SCOREMAN_QUERY))
{
aplcoms.preparedSP();
aplcoms.setString(1,req.getParameter("title"));
aplcoms.setString(2,staffNo);
aplcoms.setString(3,req.getParameter("replyer"));
SysResultSet rs1 = aplcoms.csCommonSP("P_Agt_ScoreQuery").getResultSet();
rs1.next();
aplcoms.preparedQuery(rs1.getString(1));
rs2 = aplcoms.csCommonQuery("SELFSQL","1","-1").getResultSet();
}
else
{
//根据工号从数据库中获取评阅考卷列表记录
aplcoms.preparedSP();
aplcoms.setString(1,"");
aplcoms.setString(2,staffNo);
aplcoms.setString(3,"");
SysResultSet rs1 = aplcoms.csCommonSP("P_Agt_ScoreQuery").getResultSet();
rs1.next();
aplcoms.preparedQuery(rs1.getString(1));
rs2 = aplcoms.csCommonQuery("SELFSQL","1","-1").getResultSet();
}
//把结果集存放到session中
req.getSession().setAttribute("SCOREMAN-GET-RESULTSET",rs2);
//定向到列表显示页面
return (mapping.findForward("scoremanlist"));
}
catch (SysDbException aple)
{//捕获CommonService系统异常,定向到出错页面
//输出异常信息
aple.printStackTrace();
req.setAttribute("errorId",ErrorCode.COMMONSERVICE_ERROR);
return (mapping.findForward("error"));
}
catch(java.sql.SQLException sqle)
{//捕获调用aplcoms异常,定向到出错页面
// 输出异常信息
sqle.printStackTrace();
req.setAttribute("errorId",ErrorCode.DATABASE_ERROR);
return (mapping.findForward("error"));
}
catch(Exception e)
{//捕获未知异常,定向到出错页面
//输出异常信息
e.printStackTrace();
req.setAttribute("errorId",ErrorCode.UNKNOW_ERROR);
return (mapping.findForward("error"));
}
finally
{//关闭连接实例
if(aplcoms != null)
{
aplcoms.close();
}
}
}
/**
* 获取所评阅考卷的试题信息
*/
private ActionForward getScoreDetail(ActionMapping mapping,
ActionForm form, HttpServletRequest req,
HttpServletResponse res)
{
//获取记录ID号
String recordId = ((ScoreManForm)form).getRecordId();
//获取该考试记录的试卷的ID号
String paperId = ((ScoreManForm)form).getPaperId();
//定义连接的实例
SysDbConn aplcoms = null;
try
{
//得到一个连接的实例
aplcoms = SysConnPool.getInstance().getAplComs();
//根据考试记录ID号获取所评阅考卷的试题信息
aplcoms.preparedQuery("");
aplcoms.setString(1, recordId);
aplcoms.setString(2, paperId);
SysResultSet rs1 = aplcoms.csCommonQuery("SQL_Agt_ScoreManGetDetail" ,"1" ,"-1").getResultSet();
//传送参数
req.setAttribute("recordId",recordId);
req.setAttribute("paperId",paperId);
//把结果集传送到页面
req.setAttribute("SCOREMAN-GET-DETAILSET",rs1);
//定向到列表显示页面
return (mapping.findForward("scoremandetail"));
}
catch (SysDbException aple)
{//捕获CommonService系统异常,定向到出错页面
//输出异常信息
aple.printStackTrace();
req.setAttribute("errorId",ErrorCode.COMMONSERVICE_ERROR);
return (mapping.findForward("error"));
}
catch(java.sql.SQLException sqle)
{//捕获调用aplcoms异常,定向到出错页面
// 输出异常信息
sqle.printStackTrace();
req.setAttribute("errorId",ErrorCode.DATABASE_ERROR);
return (mapping.findForward("error"));
}
catch(Exception e)
{//捕获未知异常,定向到出错页面
//输出异常信息
e.printStackTrace();
req.setAttribute("errorId",ErrorCode.UNKNOW_ERROR);
return (mapping.findForward("error"));
}
finally
{//关闭连接实例
if(aplcoms != null)
{
aplcoms.close();
}
}
}
/**
* 处理考试的答卷
*/
private ActionForward dealScore(ActionMapping mapping,
ActionForm form, HttpServletRequest req,
HttpServletResponse res)
{
//从ScoreManForm中获取所评阅答卷的评分信息与试题,记录ID;
String[] testIds = ((ScoreManForm)form).getTestIds();
String[] score = ((ScoreManForm)form).getScore();
String recordId = ((ScoreManForm)form).getRecordId();
//获取该考试记录的试卷的ID号
String paperId = ((ScoreManForm)form).getPaperId();
//答题人工号
String replyStaffNo = ((ScoreManForm)form).getReplyStaffNo();
//答题的时间
String examTime = ((ScoreManForm)form).getExamTime();
examTime = examTime.substring(0,4) + examTime.substring(5,7) + examTime.substring(8,10);
//对试题,记录ID以#号进行分隔
String testIdsSet = Tools.getStringSet(testIds);
String scoreSet = Tools.getStringSet(score);
//定义连接的实例
SysDbConn aplcoms = null;
try
{
//得到一个连接的实例
aplcoms = SysConnPool.getInstance().getAplComs();
//调用存储过程P_Agt_ScoreDeal处理评分
//设置参数:记录ID号、试题ID号、得分
aplcoms.preparedSP();
aplcoms.setString(1 ,recordId);
aplcoms.setString(2 ,testIdsSet);
aplcoms.setString(3 ,scoreSet);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?