epaperaction.java

来自「培训考试系统代码」· Java 代码 · 共 1,100 行 · 第 1/3 页

JAVA
1,100
字号
     * 查询试卷操作
     */
    private ActionForward queryPaper(ActionMapping mapping,
           ActionForm form, HttpServletRequest req,
           HttpServletResponse res)
    {
       //从EPaperForm中获取查询条件;
       String titleTerm = ((EPaperForm)form).getTitleTerm();
       String classIdTerm = ((EPaperForm)form).getClassIdTerm();
       String paperTypeTerm = ((EPaperForm)form).getPaperTypeTerm();
       String statusTerm = ((EPaperForm)form).getStatusTerm();

       String opeType =((EPaperForm)form).getOpeType();//从form中获取

       //定义连接的实例
       SysDbConn aplcoms = null;
       try
       {
           //得到一个连接的实例
           aplcoms = SysConnPool.getInstance().getAplComs();

            //根据查询条件,从数据库中获取试题记录
            aplcoms.preparedSP();
            aplcoms.setString(1,titleTerm);
            aplcoms.setString(2,classIdTerm);
            aplcoms.setString(3,paperTypeTerm);
            aplcoms.setString(4,statusTerm);

            SysResultSet rs1 = aplcoms.csCommonSP("P_Agt_EPaperSearch").getResultSet();
            rs1.next();
            aplcoms.preparedQuery(rs1.getString(1));

            SysResultSet rs2 = aplcoms.csCommonQuery("SELFSQL","1","-1").getResultSet();

            if(opeType.equalsIgnoreCase(OperatorFlagCode.EPAPER_QUERY))
            {//定向到列表显示页面
               //把结果集存放到session中
               req.getSession().setAttribute("EPAPER-QUERY-RESULTSET",rs2);
               return (mapping.findForward("epaperlist"));
            }
            else if( opeType.equalsIgnoreCase(OperatorFlagCode.EPAPER_QUERY_FORSELECT))
            {//定向到选择试卷页面--考试
               //把结果集存放到session中
               req.setAttribute("order",req.getParameter("order"));
               req.getSession().setAttribute("EPAPER-QFORSELECT-RESULTSET",rs2);
               return (mapping.findForward("selectepaper"));
            }
            else if( opeType.equalsIgnoreCase(OperatorFlagCode.EPAPER_QUERY_FORSELECT1))
            {//定向到选择试卷页面--课程
               //把结果集存放到session中
               req.getSession().setAttribute("EPAPER-QFORSELECT1-RESULTSET",rs2);
               return (mapping.findForward("selectepaper1"));
            }
            else
            {
               return (mapping.findForward("epaperlist"));
            }
       }
       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 queryPaperDetail(ActionMapping mapping,
           ActionForm form, HttpServletRequest req,
           HttpServletResponse res)
    {
       //从EPaperForm中获取试卷的ID号
       String paperId =  paperId = ((EPaperForm)form).getPaperId();
       if(paperId == null)
       {//以数组方式传送
        paperId = (((EPaperForm)form).getPaperIds())[0];
       }

       //从EPaperForm中获取操作类型;
       String opeType = ((EPaperForm)form).getOpeType();//从form中获取

       //定义连接的实例
       SysDbConn aplcoms = null;
       try
       {
           //得到一个连接的实例
           aplcoms = SysConnPool.getInstance().getAplComs();

           //根据试卷ID号,从数据库中获取试卷的详细信息
           aplcoms.preparedQuery("");
           aplcoms.setString(1 ,paperId);

           SysResultSet rs1 = aplcoms.csCommonQuery("SQL_Agt_EPaperQueryDetail" ,"1" ,"-1").getResultSet();
           //把参数值传到页面去
           if(rs1 == null)
           {
               req.setAttribute("errorId",ErrorCode.EPAPER_QUERY_ERROR);
               return (mapping.findForward("error"));
           }

           if(rs1.next())
           {
              req.setAttribute("paperId",paperId);
              req.setAttribute("title",rs1.getString(1));
              req.setAttribute("classId",rs1.getString(2));
              req.setAttribute("releaseTime",rs1.getString(3));
              req.setAttribute("testStatus",rs1.getString(4) );
              req.setAttribute("paperType",rs1.getString(5) );
           }

           //根据试卷ID号,从数据库中获取试卷的试题信息
           aplcoms.preparedQuery("");
           aplcoms.setString(1 ,paperId);
           SysResultSet rs2 = aplcoms.csCommonQuery("SQL_Agt_EPaperQueryTest" ,"1" ,"-1").getResultSet();

           //以把结果集存放到传到页面去
           req.setAttribute("EPAPER-QUERY-TESTSET",rs2);

           //定向
           if(opeType.equalsIgnoreCase(OperatorFlagCode.EPAPER_QUERY_DETAILBROWSE))
           { //定向到试卷预览页面
               return (mapping.findForward("epaperbrowse"));
           }
           else if(opeType.equalsIgnoreCase(OperatorFlagCode.EPAPER_QUERY_DETAILEDIT))
           {//定向到试卷编辑页面
              return (mapping.findForward("epaperedit"));
           }
           else
           {//操作类型为查询详细信息
                return (mapping.findForward("epapershow"));
           }
       }
       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 changeStatus(ActionMapping mapping,
           ActionForm form, HttpServletRequest req,
           HttpServletResponse res)
    {
       //获取操作类型
       String opeType =((EPaperForm)form).getOpeType();//从form中获取

       //从EPaperForm中获取试卷ID号
       //按组更新状态
       String[] paperIds = ((EPaperForm)form).getPaperIds();
       //按单个更新状态
       if(paperIds == null)
       {
           paperIds = new String[1];
           paperIds[0] = new String(((EPaperForm)form).getPaperId());
       }
       //以"#"号组合所要删除的试卷,之间以"#"号分割
       String paperIdSet = "";
       paperIdSet = Tools.getStringSet(paperIds);

       //新状态
       int status = ((EPaperForm)form).getStatus();

       //定义连接的实例
       SysDbConn aplcoms = null;
       try
       {
           //得到一个连接的实例
           aplcoms = SysConnPool.getInstance().getAplComs();

           //根据策略ID号,更改试卷状态
           aplcoms.preparedSP();

           aplcoms.setString(1,paperIdSet);
           aplcoms.setInt(2,status);

           SysDataSet ds1 = aplcoms.csCommonSP("P_Agt_EPaperStatusChange");
           SysRecord rc1 = ds1.getParamSet() ;

           if(rc1==null || rc1.getInt(0) == OperatorFlagCode.OPERATOR_EORROR)
           {//修改失败
               //定向到错误页面,错误号为EPAPER_MOD_ERROR;
               req.setAttribute("errorId",ErrorCode.EPAPER_STATUSCHANGE_ERROR);
               return (mapping.findForward("error"));
           }

           if(opeType.equalsIgnoreCase(OperatorFlagCode.EPAPER_RELEASE_SINGLE))
           {//提示操作成功
              if(status == 2)
              {
                 req.setAttribute("successId",SuccessCode.EPAPER_CANCEL_SUCCESS);
              }
              else
              {
                  req.setAttribute("successId",SuccessCode.EPAPER_RELEASE_SUCCESS);
              }

              req.setAttribute("backURL","/ExamPaperMan.do?opeType=1");
              return (mapping.findForward("success"));
           }
           else
           {//调用queryEpaper函数进行重新查询后返回到列表页面
              ((EPaperForm)form).setOpeType(OperatorFlagCode.EPAPER_QUERY);
              return queryPaper(mapping,form,req,res);
           }

       }
       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();
           }
       }
    }

    ///:huangyuyuan add 2004-06-16
      /**
       * 选择不同页面的自测题
       * @param operatorFlag 用来判断这是提交动作还是选择动作
       */
      private ActionForward paperSelected(ActionMapping mapping,
                               ActionForm form,
                               HttpServletRequest req,HttpServletResponse res,String operatorFlag)
      {
          System.out.println("hyy:EPaperAction:111111111111111111");
          try
          {
              HttpSession session = req.getSession();
              //matMap用来保存选择的数据
              HashMap paperMap = (HashMap)session.getAttribute("paperMap");

              //paperIds和paperNames保存的是当前页面选择的数据
              String paperIds = req.getParameter("paperIds");
              String paperNames = req.getParameter("paperNames");

              System.out.println("hyy:EPaperAction:paperIds:"+paperIds);
              System.out.println("hyy:EPaperAction:paperNames:"+paperNames);

              //获得当前页的页数
              String pageNumStr = req.getParameter("curPageNum");
              //获得最大页的页数
              String maxPageNumStr = req.getParameter("maxPageNum");
              int pageNum = 1;
              int maxPageNum = 1;

              if((null != pageNumStr) && (null != maxPageNumStr))
              {
                  pageNum = Integer.parseInt(pageNumStr);
                  maxPageNum = Integer.parseInt(maxPageNumStr);
                  if(pageNum < maxPageNum)
                  {
                      pageNum++;
                  }
              }


              StringTokenizer paperIdsTokenizer = new StringTokenizer(paperIds,"~");
              StringTokenizer paperNamesTokenizer = new StringTokenizer(paperNames,",");

              if (null == paperMap)
              {
                  paperMap = new HashMap();
              }

              while((paperIdsTokenizer.hasMoreTokens()) && (paperNamesTokenizer.hasMoreTokens()))
              {
                  paperMap.put(paperIdsTokenizer.nextToken(),paperNamesTokenizer.nextToken());
              }

              session.setAttribute("paperMap",paperMap);

              //判断是否已经提交
              if(operatorFlag.equals(OperatorFlagCode.EPAPER_SELECTED_SUBMIT))
              {
                  //forward到另一个页面
                  req.getRequestDispatcher("/agt/lessonmng/SelectEPaper1.jsp?selectDone=1&pageNum=" + pageNum).forward(req,res);
              }
              else
              {
                  //forward到另一个页面
                  req.getRequestDispatcher("/agt/lessonmng/SelectEPaper1.jsp?selectDone=0&pageNum=" + pageNum).forward(req,res);
              }
          }
          catch(Exception e)
          {
              e.printStackTrace();
              req.setAttribute("errorId", ErrorCode.UNKNOW_ERROR);
              return servlet.findForward("error");
          }

          return null;
      }
      ///:~

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?