/** * 處理以學號查詢學生選課清單 * * @param mapping org.apache.struts.action.ActionMapping object * @param form org.apache.struts.action.ActionForm object * @param request javax.servlet.http.HttpServletRequest object * @param response javax.servlet.http.HttpServletResponse object * @return org.apache.struts.action.ActionForward object * @exception java.lang.Exception */ @SuppressWarnings("unchecked") public ActionForward list( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { DynaActionForm aForm = (DynaActionForm) form; HttpSession session = request.getSession(false); Toolket.resetCheckboxCookie(response, SELD_LIST_NAME); // 確實清除變數"seldList"內所存資料,因學生可能無選課資料 session.removeAttribute(SELD_LIST_NAME); ActionMessages messages = validateInputForUpdate(aForm, Toolket.getBundle(request)); if (!messages.isEmpty()) { saveErrors(request, messages); return mapping.findForward(IConstants.ACTION_MAIN_NAME); } else { try { CourseManager cm = (CourseManager) getBean(COURSE_MANAGER_BEAN_NAME); log.info("Student NO : " + aForm.getString("stdNo")); List<Map> seldList = doForDuplicate(cm.getSeldDataByStudentNo(aForm.getString("stdNo"), "1")); if (!seldList.isEmpty()) { session.setAttribute("NO", aForm.getString("stdNo").toUpperCase()); int hours = 0, position = 0; float credit = 0.0F; List<SeldDataInfo> result = new ArrayList<SeldDataInfo>(); SeldDataInfo info = null; for (Map content : seldList) { info = new SeldDataInfo(); Integer dtimeOid = (Integer) content.get("oid"); info.setClassNo((String) content.get("classNo")); info.setClassName((String) content.get("className")); info.setCsCode((String) content.get("cscode")); info.setCsName((String) content.get("chi_Name")); info.setStuSelect(String.valueOf(cm.findSeldCountByDtimeOid(dtimeOid))); info.setSelectLimit(((Integer) content.get("select_Limit")).toString()); info.setHour(Short.valueOf(((Integer) content.get("thour")).toString())); info.setCredit((Float) content.get("credit")); info.setSeldOid((Integer) content.get("soid")); // Seld Oid String opt = (String) content.get("opt"); info.setOpt(opt); info.setOptName(Toolket.getCourseOpt(opt)); info.setDtimeOid(dtimeOid); // Dtime Oid info.setPosition(Integer.valueOf(position++)); info.setTerm((String) content.get("sterm")); hours += ((Integer) content.get("thour")).intValue(); credit += ((Float) content.get("credit")).floatValue(); result.add(info); } session.setAttribute(SELD_LIST_COUNT, Integer.valueOf(seldList.size())); session.setAttribute(SELD_LIST_HOURS, Integer.valueOf(hours)); session.setAttribute( SELD_LIST_CREDITS, Float.valueOf(new DecimalFormat("0.0").format(credit))); session.setAttribute(SELD_LIST_NAME, result); session.setAttribute("mode", "ALL"); } else { // 查無資料則回傳空白List session.setAttribute(SELD_LIST_NAME, Collections.EMPTY_LIST); session.setAttribute("mode", "NONE"); ActionMessages msg = new ActionMessages(); msg.add( ActionMessages.GLOBAL_MESSAGE, new ActionMessage("Course.messageN1", "查無任何選課資料!!")); saveMessages(request, msg); } } catch (Exception e) { ActionMessages errors = new ActionMessages(); errors.add( ActionMessages.GLOBAL_MESSAGE, new ActionMessage("Exception.generic", e.getMessage())); saveErrors(request, errors); return mapping.findForward(IConstants.ACTION_MAIN_NAME); } } setContentPage(request.getSession(false), "course/OnlineAddRemoveCourse.jsp"); return mapping.findForward(IConstants.ACTION_MAIN_NAME); }