adminaction.java

来自「在线考试系统: 这是基于struts和Hibernate的最新技术的在线考试系」· Java 代码 · 共 393 行

JAVA
393
字号
package com.zjxy.hibernate.action;

import java.lang.reflect.InvocationTargetException;
import java.sql.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.actions.DispatchAction;

import com.zjxy.hibernate.base.AdminManager;
import com.zjxy.hibernate.base.PageDAO;
import com.zjxy.hibernate.form.AdminForm;
import com.zjxy.hibernate.model.Admin;
import com.zjxy.hibernate.model.User;
import com.zjxy.hibernate.pagerHelp.Pager;
import com.zjxy.hibernate.pagerHelp.PagerHelp;

public class AdminAction extends DispatchAction{
	/**
	 * 管理员信息一览画面显示
	 * @param actionMapping
	 * @param actionForm
	 * @param httpServletRequest
	 * @param httpServletresponse
	 * @return
	 */
	 public ActionForward display(ActionMapping actionMapping,
             ActionForm actionForm,
             HttpServletRequest httpServletRequest,
             HttpServletResponse httpServletresponse) {
		
		 // 用于输出到页面的记录集合
        List clInfos = null;
        String sqlBean = "from com.zjxy.hibernate.model.Admin";
        // 记录总行数
        int totalRows = 0;
        AdminManager adminManager = new AdminManager();
        List list = adminManager.getAdminList();
        totalRows = list.size();
        PageDAO pageDAO = new PageDAO();

        // 取得当前表中的总行数

        // 通过PagerHelper类来获取用于输出到页面的pager对象
        Pager pager=PagerHelp.getPager(httpServletRequest,totalRows);
       // 取出从startRow开始的pageSize行记录
        try {
            clInfos = pageDAO.findWithPage(pager.getPageSize(), pager.getStartRow(), sqlBean);
            } catch (Exception ex) {
                servlet.log(ex.toString());
         }
     

         //把输出的记录集和pager对象保存到request对象中
     
         httpServletRequest.setAttribute("CLINFOS", clInfos);
         httpServletRequest.setAttribute("PAGER", pager);
         

         return actionMapping.findForward("display");
}
	 
		/**
		 * 管理员信息添加画面初期表示
		 * @param actionMapping
		 * @param actionForm
		 * @param httpServletRequest
		 * @param httpServletresponse
		 * @return
		 */
	 public ActionForward addDisplay(ActionMapping actionMapping,
             ActionForm actionForm,
             HttpServletRequest httpServletRequest,
             HttpServletResponse httpServletresponse) {
		 return actionMapping.findForward("addDisplay");
	 }
	 
	 
		/**
		 * 管理员信息添加
		 * @param actionMapping
		 * @param actionForm
		 * @param request
		 * @param response
		 * @return
		 */
	 public ActionForward add(ActionMapping actionMapping,
             ActionForm form,
             HttpServletRequest request,
             HttpServletResponse response) {
		 
		 // 定义AdminForm对象用于获取页面信息
		 AdminForm adminForm = (AdminForm) form;
		 Admin admin = new Admin();
		 User user = new User();
		 AdminManager adminManager = new AdminManager();
		 // 定义existFlag变量,用于判断管理员帐号存在性判断
		 boolean existFlag = false;
		 // 定义ActionErrors对象
		 ActionErrors errors = new ActionErrors();
		 
		 // 将页面取得的信息设置值到Admin JavaBean中
		 // 管理员帐号
		 admin.setAdminID(adminForm.getAdminID());
		 // 管理员姓名
		 admin.setAdminName(adminForm.getAdminName());
		 System.out.println(adminForm.getAdminName());
		 // 管理员性别
		 admin.setAdminSex(adminForm.getAdminSex());
		 // 管理员联系电话
		 admin.setAdminCall(adminForm.getAdminCall());
		 // 管理员联系地址
		 admin.setAdminAddress(adminForm.getAdminAddress());
		 // 定义Date型变量并设初始值:1900-01-01
		 Date adminTime = Date.valueOf("1900-01-01");

		 if (!("".equals(adminForm.getAdminTime())) || (adminForm.getAdminTime().length()!=0)) {
			 // 入岗日期不为空时的表示形式转化
			 adminTime = Date.valueOf(adminForm.getAdminTime().replace('/', '-'));
		 }
		 // 重新设置入岗日期值
		 admin.setAdminTime(adminTime);
		 // 管理员初始密码
		 admin.setAdminNO(adminForm.getAdminNO());
		 // 等级
		 admin.setAdminManage(1);
		 
		 // 将页面取得的信息设置值到User JavaBean中
		 // 管理员帐号
		 user.setUserID(adminForm.getAdminID());
		 // 管理员密码
		 user.setPassword(adminForm.getAdminNO());
		 // 管理员权限
		 user.setUserFlag("M");
		 System.out.println("dhueidishfkldhoieo");
		 // 判断输入的管理员帐号是否已经存在,存在则返回true,否则返回false
		 existFlag = adminManager.getAdminByID(adminForm.getAdminID());
		 if (existFlag) {
			 // 管理员帐号已经存在的情况
			 errors.add("adminIDIsExist", new ActionError("oes.admin.error.adminIDIsExist"));
	        	saveErrors(request, errors);
	        	return (new ActionForward(actionMapping.getInput()));
		 }
		 // 调用AdminManager类的addAdmin方法向数据库添加管理员信息
		 adminManager.addAdmin(admin, user);
		 
		 //重定向:页面跳转
		 return actionMapping.findForward("addSuccess");
	 }
	 
		/**
		 * 管理员信息修改画面初期表示
		 * @param actionMapping
		 * @param actionForm
		 * @param request
		 * @param response
		 * @return
		 */
	 public ActionForward modifyDisplay(ActionMapping actionMapping,
            ActionForm form,
            HttpServletRequest request,
            HttpServletResponse response) {
		 
         // 定义AdminForm对象用于获取页面信息
		 AdminForm adminForm = (AdminForm) form;
		 Admin admin = new Admin();
		 AdminManager adminManager = new AdminManager();
		 
		 // 从页面取得要修改数据的sequenceID值
		 int sequenceID = Integer.parseInt(request.getParameter("sequenceID"));
		 // 调用getModifyInfoByID方法取得要修改的数据
		 admin = adminManager.getModifyInfoByID(sequenceID);
		 // 将页面取得的信息设置值到Admin JavaBean中
		 try {
			BeanUtils.copyProperties(adminForm, admin);
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
         // 重定向:页面跳转
		 return actionMapping.findForward("modifyDisplay");
	 }
	 
		/**
		 * 管理员信息修改
		 * @param actionMapping
		 * @param actionForm
		 * @param request
		 * @param response
		 * @return
		 */
	 public ActionForward modify(ActionMapping actionMapping,
          ActionForm form,
          HttpServletRequest request,
          HttpServletResponse response) {
         
		 // 定义AdminForm对象用于获取页面信息
		 AdminForm adminForm = (AdminForm) form;
		 Admin admin = new Admin();
		 Admin adminOld = new Admin();
		 User user = new User();
		 AdminManager adminManager = new AdminManager();
		 ActionErrors errors = new ActionErrors();
		 
         // 将页面取得的信息设置值到Admin JavaBean中
		 admin.setSequenceID(adminForm.getSequenceID());
		 admin.setAdminID(adminForm.getAdminID());
		 admin.setAdminName(adminForm.getAdminName());
		 admin.setAdminSex(adminForm.getAdminSex());
		 admin.setAdminCall(adminForm.getAdminCall());
		 admin.setAdminAddress(adminForm.getAdminAddress());
		 Date adminTime = Date.valueOf("1900-01-01");

		 if (!("".equals(adminForm.getAdminTime())) || (adminForm.getAdminTime().length()!=0)) {
			 adminTime = Date.valueOf(adminForm.getAdminTime().replace('/', '-'));
		 }
		 admin.setAdminTime(adminTime);
		 admin.setAdminNO(adminForm.getAdminNO());
		 admin.setAdminManage(1);
		 
         // 将页面取得的信息设置值到User JavaBean中
		 user.setSequenceID(adminForm.getSequenceID());
		 user.setUserID(adminForm.getAdminID());
		 user.setPassword(adminForm.getAdminNO());
		 user.setUserFlag("M");
		 
		 // 判断修改过的管理员帐号是否在数据库中已经存在,若存在则报错
		 adminOld = adminManager.getModifyInfoByID(adminForm.getSequenceID());
		 if (!adminForm.getAdminID().equals(adminOld.getAdminID())) {
			 // 管理员帐号已经被修改
			 if (adminManager.getAdminByID(adminForm.getAdminID())) {
				 // 管理员帐号已经存在的情况
				 errors.add("adminIDIsExist", new ActionError("oes.admin.error.adminIDIsExist"));
		        	saveErrors(request, errors);
		        	return (new ActionForward(actionMapping.getInput()));
			 }
		 }
		 // 修改管理员信息:调用modifyAdminInfo方法
		 adminManager.modifyAdminInfo(admin, user);
		 return actionMapping.findForward("modifySuccess");
	 }
	 
	 /**
		 * 管理员信息删除
		 * @param actionMapping
		 * @param actionForm
		 * @param request
		 * @param response
		 * @return
		 */
	 public ActionForward delete(ActionMapping actionMapping,
         ActionForm form,
         HttpServletRequest request,
         HttpServletResponse response) {
		 AdminManager adminManager = new AdminManager();
		 // 从页面取得要删除数据的sequenceID值
		 int sequenceID = Integer.parseInt(request.getParameter("sequenceID"));
		 adminManager.delete(sequenceID);
		 return actionMapping.findForward("deleteSuccess");
	 }
	 
	 /**
		 * 管理员信息查询
		 * @param actionMapping
		 * @param actionForm
		 * @param request
		 * @param response
		 * @return
		 */
	 public ActionForward search(ActionMapping actionMapping,
	         ActionForm form,
	         HttpServletRequest request,
	         HttpServletResponse response) {
		     AdminForm adminForm = (AdminForm) form;
			 AdminManager adminManager = new AdminManager();
			 String name = adminForm.getAdminNameSearch();
			 // 用于输出到页面的记录集合
		        List clInfos = null;
		        String sqlBean = "from com.zjxy.hibernate.model.Admin as admin where admin.adminName=?";
		        // 记录总行数
		        int totalRows = 0;
		        List list = adminManager.getAdminList();
		        totalRows = list.size();
		        PageDAO pageDAO = new PageDAO();

		        // 取得当前表中的总行数

		        // 通过PagerHelper类来获取用于输出到页面的pager对象
		        Pager pager=PagerHelp.getPager(request,totalRows);

		        // 取出从startRow开始的pageSize行记录
		        try {
		            clInfos = pageDAO.findWithPage_search(pager.getPageSize(), pager.getStartRow(), sqlBean, name);
		            } catch (Exception ex) {
		                servlet.log(ex.toString());
		         }
		       
		         if (clInfos.size() == 0) {
		        	 request.setAttribute("noRecord", new ActionMessage("oes.admin.error.noRecord"));
		         }
		         Integer total = Integer.valueOf(totalRows);
		         //把输出的记录集和pager对象保存到request对象中
		         request.setAttribute("TOTALROWS", total);
		         request.setAttribute("CLINFOS", clInfos);
		         request.setAttribute("PAGER", pager);
             
		     request.setAttribute("searchPage", new ActionMessage("searchPage"));
			 return actionMapping.findForward("searchSuccess");
		 }
	 
	 /**
		 * 管理员密码修改
		 * @param actionMapping
		 * @param actionForm
		 * @param request
		 * @param response
		 * @return
		 */
	 
	 public ActionForward pswdModifyDisplay(ActionMapping actionMapping,
             ActionForm actionForm,
             HttpServletRequest httpServletRequest,
             HttpServletResponse httpServletresponse) {
		 return actionMapping.findForward("pswdModifyDisplay");
	 }	 
	 
	 public ActionForward modifyPsw(ActionMapping actionMapping,
             ActionForm form,
             HttpServletRequest httpServletRequest,
             HttpServletResponse httpServletresponse) {
		 // 定义AdminForm对象用于获取页面信息
		 AdminForm adminForm = (AdminForm) form;
		 // 定义session
		 HttpSession session = httpServletRequest.getSession();
		 User user = new User();
		 User userInfo = new User();
		 Admin admin = new Admin();
		 AdminManager adminManager = new AdminManager();
		 ActionErrors errors = new ActionErrors();
		 // 从session中取得用户登陆信息
		 user = (User) session.getAttribute("User");
		 // 取得sequenceID
		 int sequenceID = user.getSequenceID();
		 // 取得原始密码
		 String password = user.getPassword();
		 // 取得新密码
		 String newPassword = adminForm.getNewAdminNO(); 
		 // 取得确认新密码
		 String surePassword = adminForm.getSureAdminNO();
		 // 调用getModifyInfoByID方法取得原始信息
		 admin = adminManager.getModifyInfoByID(sequenceID);
		 // 设置新密码
		 admin.setAdminNO(newPassword);
		 
		 // 设置信息到User JavaBean中
		 userInfo.setSequenceID(sequenceID);
		 userInfo.setUserID(user.getUserID());
		 userInfo.setPassword(newPassword);
		 userInfo.setUserFlag("M");
		 
		 // 原始密码校验
		 if (!password.equals(adminForm.getAdminNO())) {
			 errors.add("oriPswIsWrong", new ActionError("oes.password.error.originalPassword"));
	         saveErrors(httpServletRequest, errors);
	         return (new ActionForward(actionMapping.getInput()));
		 }
		 
		 if (!newPassword.equals(surePassword)) {
			 errors.add("surePswIsWrong", new ActionError("oes.password.error.confirmPassword"));
	         saveErrors(httpServletRequest, errors);
	         return (new ActionForward(actionMapping.getInput()));
		 }
		 // 确认新密码校验
		 adminManager.changePassword(admin, userInfo);
		 
		 
		 return actionMapping.findForward("modifyPswSuccess");
	 }
}

⌨️ 快捷键说明

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