policyaction.java
来自「培训考试系统代码」· Java 代码 · 共 481 行 · 第 1/2 页
JAVA
481 行
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> 从PolicyForm类中提取策略信息,
* 处理增加、修改、删除与查询策略逻辑处理的Action类,
* 根据不同的OpeType的值执行不同的动作。
* </p>
* <p> </p>
* <p> </p>
* @author 龙燕茜
* @version 1.0
*/
public class PolicyAction 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 = ((PolicyForm)form).getOpeType();//从form中获取
if(opeType.equalsIgnoreCase(OperatorFlagCode.POLICY_ADD))
{//增加操作
return addPolicy(mapping,form,req,res);
}
else if (opeType.equalsIgnoreCase(OperatorFlagCode.POLICY_MODIFY))
{//修改操作
return modifyPolicy(mapping,form,req,res);
}
else if(opeType.equalsIgnoreCase(OperatorFlagCode.POLICY_DELETE))
{//删除操作
return deletePolicy(mapping,form,req,res);
}
else if(opeType.equalsIgnoreCase(OperatorFlagCode.POLICY_QUERY))
{//查询操作
return queryPolicy(mapping,form,req,res);
}
else if(opeType.equalsIgnoreCase(OperatorFlagCode.POLICY_QDETAIL_SHOW)
|| opeType.equalsIgnoreCase(OperatorFlagCode.POLICY_QDETAIL_MODIFY))
{//查询详细信息操作
return queryPolicyDetail(mapping,form,req,res);
}
else
{//操作类型错误,定向到错误页面
req.setAttribute("errorId",ErrorCode.UNKNOW_ERROR);
return (mapping.findForward("error"));
}
}
/**
* 增加策略操作
*/
private ActionForward addPolicy(ActionMapping mapping,
ActionForm form, HttpServletRequest req,
HttpServletResponse res)
{
//从PolicyFrom中获取数据
String title = ((PolicyForm)form).getTitle();
//试题题型集合,之间以"#"号分割
String[] testType = ((PolicyForm)form).getTestType();
String testTypeSet = Tools.getStringSet(testType);
//试题数量集合,之间以"#"号分割
String[] number = ((PolicyForm)form).getNumber();
String numberSet = Tools.getStringSet(number);
//每道题的得分集合,之间以"#"号分割
String[] perScore = ((PolicyForm)form).getPerScore();
String perScoreSet = Tools.getStringSet(perScore);
//难度集合,之间以"#"号分割
String[] degreeStr = ((PolicyForm)form).getDegree();
String degreeSet = Tools.getStringSet(degreeStr);
//测试手段集合,之间以"#"号分割
String[] testMeansStr = ((PolicyForm)form).getTestMeans();
String testMeansSet = Tools.getStringSet(testMeansStr);
//使用级别,之间以"#"号分割
String[] useLevelStr = ((PolicyForm)form).getUseLevel();
String useLevelSet = Tools.getStringSet(useLevelStr);
//类别编号集合,之间以"#"号分割
String[] classIdStr = ((PolicyForm)form).getClassIds();
String classIdSet= Tools.getStringSet(classIdStr);
//定义连接的实例
SysDbConn aplcoms = null;
try
{
//得到一个连接的实例
aplcoms = SysConnPool.getInstance().getAplComs();
//调用存储过程P_Agt_PolicyAdd完成策略的添加
aplcoms.preparedSP();
aplcoms.setString(1 ,title);
aplcoms.setString(2 ,testTypeSet);
aplcoms.setString(3 ,numberSet);
aplcoms.setString(4 ,perScoreSet);
aplcoms.setString(5 ,degreeSet);
aplcoms.setString(6 ,testMeansSet);
aplcoms.setString(7 ,useLevelSet);
aplcoms.setString(8 ,classIdSet);
SysDataSet ds = aplcoms.csCommonSP("P_Agt_PolicyAdd");
SysRecord rc = ds.getParamSet() ;
if(rc!=null && rc.getInt(0) == OperatorFlagCode.OPERATOR_SUCCESS)
{//添加策略成功
//定向到成功页面,成功号为ADDPOLICY_SUCCESS;
req.setAttribute("successId",SuccessCode.ADDPOLICY_SUCCESS);
return (mapping.findForward("success"));
}
else
{//添加策略失败
//定向到错误页面,错误号为POLICY_ADD_ERROR;
req.setAttribute("errorId",ErrorCode.POLICY_ADD_ERROR);
return (mapping.findForward("error"));
}
}
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 modifyPolicy(ActionMapping mapping,
ActionForm form, HttpServletRequest req,
HttpServletResponse res)
{
//从PolicyFrom中获取数据
String title = ((PolicyForm)form).getTitle();
String policyId = ((PolicyForm)form).getPolicyId();
//试题题型集合,之间以"#"号分割
String[] testType = ((PolicyForm)form).getTestType();
String testTypeSet = Tools.getStringSet(testType);
//试题数量集合,之间以"#"号分割
String[] number = ((PolicyForm)form).getNumber();
String numberSet = Tools.getStringSet(number);
//每道题的得分集合,之间以"#"号分割
String[] perScore = ((PolicyForm)form).getPerScore();
String perScoreSet = Tools.getStringSet(perScore);
//难度集合,之间以"#"号分割
String[] degreeStr = ((PolicyForm)form).getDegree();
String degreeSet = Tools.getStringSet(degreeStr);
//测试手段集合,之间以"#"号分割
String[] testMeansStr = ((PolicyForm)form).getTestMeans();
String testMeansSet = Tools.getStringSet(testMeansStr);
//使用级别,之间以"#"号分割
String[] useLevelStr = ((PolicyForm)form).getUseLevel();
String useLevelSet = Tools.getStringSet(useLevelStr);
//类别编号集合,之间以"#"号分割
String[] classIdStr = ((PolicyForm)form).getClassIds();
String classIdSet= Tools.getStringSet(classIdStr);
//定义连接的实例
SysDbConn aplcoms = null;
try
{
//得到一个连接的实例
aplcoms = SysConnPool.getInstance().getAplComs();
//调用存储过程P_Agt_PolicyAdd完成策略的添加
aplcoms.preparedSP();
aplcoms.setString(1 ,policyId);
aplcoms.setString(2 ,title);
aplcoms.setString(3 ,testTypeSet);
aplcoms.setString(4 ,numberSet);
aplcoms.setString(5 ,perScoreSet);
aplcoms.setString(6 ,degreeSet);
aplcoms.setString(7 ,testMeansSet);
aplcoms.setString(8 ,useLevelSet);
aplcoms.setString(9 ,classIdSet);
SysDataSet ds = aplcoms.csCommonSP("P_Agt_PolicyMod");
SysRecord rc = ds.getParamSet() ;
if(rc ==null || rc.getInt(0) == OperatorFlagCode.OPERATOR_EORROR)
{//修改策略失败
//定向到错误页面,错误号为POLICY_MOD_ERROR;
req.setAttribute("errorId",ErrorCode.POLICY_MOD_ERROR);
return (mapping.findForward("error"));
}
//调用queryPolicy函数进行重新查询后返回到列表页面
return queryPolicy(mapping,form,req,res);
}
catch (SysDbException aple)
{//捕获CommonService系统异常,定向到出错页面
//输出异常信息
aple.printStackTrace();
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?