⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 teacheraction.java

📁 asp制作的在线考试系统
💻 JAVA
字号:
package cn.hxex.exam.action;

import java.io.IOException;
import java.util.List;

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

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import cn.hxex.exam.dao.ClassesDAO;
import cn.hxex.exam.dao.DAOFactory;
import cn.hxex.exam.dao.TeacherDAO;
import cn.hxex.exam.dao.UserDAO;
import cn.hxex.exam.form.TeacherForm;
import cn.hxex.exam.model.Classes;
import cn.hxex.exam.model.Teacher;
import cn.hxex.exam.model.User;
import cn.hxex.exam.struts.BaseAction;
import cn.hxex.exam.util.HxexBeanUtils;

/**
 * The action about teacher
 * 
 * @struts.action
 * 	name="teacherForm"
 *  path="/manage/teacher"
 *  scope="request"
 *  input="/manage/teacher_add.jsp"
 *  validate="false"
 *  parameter="p"
 * 
 * @struts.action-forward 
 *  name="add" 
 *  path="/manage/teacher_add.jsp" 
 *  
 * @struts.action-forward 
 *  name="update" 
 *  path="/manage/teacher_update.jsp" 
 *  
 * @struts.action-forward 
 *  name="list" 
 *  path="/manage/teacher_list.jsp" 
 * 
 * @struts.action-forward 
 *  name="classes" 
 *  path="/manage/teacher_classes.jsp" 
 * 
 * @author galaxy
 *
 */
public class TeacherAction extends BaseAction
{

	protected final Log log = LogFactory.getLog(getClass());

	/**
	 * 跳转到教师信息录入页面
	 */
	public ActionForward addin(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException
	{
		return mapping.findForward("add");
	}

	/**
	 * 增加教师信息的处理方法
	 */
	public ActionForward add(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException
	{
		// 拷贝用户提交的数据到Teacher对象中
		Teacher t = HxexBeanUtils.copyProperties(new Teacher(), form);

		// 取得用户对象DAO
		UserDAO dao = DAOFactory.getDao(UserDAO.class);
		// 判断同名的用户是否存在
		User u = dao.getUserByName(t.getName());
		if ( u == null )
		{
			// 保存教师信息
			dao.makePersistent(t);
			// 设置提示信息
			addMessage(request, "teacher.msg.add.success");
			// 清空表单中的数据
			TeacherForm teacher = (TeacherForm) form;
			teacher.setName(null);
			teacher.setPassword(null);
			teacher.setFullname(null);
		} 
		else
		{
			// 设置用户名重复提示信息
			addMessage(request, "teacher.msg.add.nameexist");
		}

		// 跳转到教师信息录入页面
		return addin(mapping, form, request, response);
	}

	/**
	 * 教师信息列表功能
	 */
	public ActionForward list(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException
	{
		// 得到TeacherDAO接口的实现类的实例
		TeacherDAO dao = DAOFactory.getDao(TeacherDAO.class);
		// 得到所有的Teacher对象的实例
		List<Teacher> teachers = dao.findAll();
		// 将Teacher对象的实例保存到Request中
		request.setAttribute("teachers", teachers);
		// 跳转到教师信息列表页面
		return mapping.findForward("list");
	}

	/**
	 * 跳转到教师信息修改页面
	 */
	public ActionForward updatein(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException
	{
		// 得到用户提交的数据
		TeacherForm teacher = (TeacherForm) form;

		// 得到TeacherDAO接口的实例
		TeacherDAO dao = DAOFactory.getDao(TeacherDAO.class);
		// 得到要修改的教师对象的实例
		Teacher t = dao.findById(teacher.getId(), false);
		// 判断是否找到相应的教师信息
		if (t != null)
		{
			// 找到教师信息,设置为请求的属性
			request.setAttribute("teacher", t);
			// 跳转到教师信息修改页面
			return mapping.findForward("update");
		} 
		else
		{
			// 提示错误信息
			addMessage(request, "teacher.msg.update.notexist");
			// 返回教师信息列表页面
			return list(mapping, form, request, response);
		}
	}

	/**
	 * 修改教师信息的处理方法
	 */
	public ActionForward update(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException
	{
		// 拷贝用户提交的数据到Teacher对象中
		Teacher t = HxexBeanUtils.copyProperties(new Teacher(), form);

		// 取得用户对象DAO
		UserDAO dao = DAOFactory.getDao(UserDAO.class);
		// 判断同名的用户是否存在
		User u = dao.getUserByName(t.getName());
		if ( u == null || u.getId().equals( t.getId() ) )
		{
			if( u==null )
				u = dao.findById( t.getId(), false );
			
			if( u!=null )
			{
				Teacher teacher = (Teacher)u;
				teacher.setName( t.getName() );
				teacher.setPassword( t.getPassword() );
				teacher.setFullname( t.getFullname() );
				// 设置提示信息
				addMessage(request, "teacher.msg.update.success");
			}
			else
			{
				// 设置提示信息
				addMessage(request, "teacher.msg.update.notexist");
			}
		} 
		else
		{
			// 设置用户名重复提示信息
			addMessage(request, "teacher.msg.add.nameexist");
			if( t.getId()!=null && t.getId().length()>0 )
			{
				// 返回教师信息修改页面
				return updatein( mapping, form, request, response );
			}
		}

		// 跳转到教师信息列表页面
		return list(mapping, form, request, response);
	}
	
	/**
	 * 删除教师信息
	 */
	public ActionForward delete(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException
	{
		// 得到用户提交的数据
		TeacherForm teacher = (TeacherForm) form;

		// 得到TeacherDAO对象的实例
		TeacherDAO dao = DAOFactory.getDao(TeacherDAO.class);
		// 得到要删除的教师对象的实例
		Teacher t = dao.findById(teacher.getId(), false);
		if (t != null)
		{
			// 教师信息存在,删除教师信息
			dao.makeTransient(t);
			// 设置提示信息
			addMessage(request, "teacher.msg.delete.success");
		} 
		else
		{
			// 设置要删除的教师不存在的提示信息
			addMessage(request, "teacher.msg.update.notexist");
		}

		// 返回教师信息列表页面
		return list(mapping, form, request, response);
	}

	/**
	 * 进入教师任课班级页面
	 */
	public ActionForward classes(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException
	{
		// 得到前台传递的参数
		TeacherForm teacher = (TeacherForm) form;

		// 得到教师的信息
		TeacherDAO dao = DAOFactory.getDao(TeacherDAO.class);
		Teacher t = dao.findById(teacher.getId(), false);
		if (t != null)
		{
			request.setAttribute("teacher", t);
			
			// 得到教师所任课的班级的信息
			request.setAttribute("inclasses", t.getClasses());
			
			// 得到教师未任课的班级的信息
			ClassesDAO classesdao = DAOFactory.getDao(ClassesDAO.class);
			request.setAttribute("notinclasses", classesdao
					.getTeacherNotInClasses(t.getId()));
		}
		else
		{
			// 教师信息不存在,返回教师列表页面
			addMessage(request, "teacher.msg.update.notexist");
			return list(mapping, form, request, response);
		}
		return mapping.findForward("classes");
	}
	
	/**
	 * 保存教师教授班级的信息
	 */
	public ActionForward saveclasses(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException
	{
		// 得到用户提交的数据
		TeacherForm teacher = (TeacherForm) form;

		// 得到教师的信息
		TeacherDAO dao = DAOFactory.getDao(TeacherDAO.class);
		Teacher t = dao.findById(teacher.getId(), false);
		if (t != null)
		{
			// 清空教师所教授的班级
			t.getClasses().clear();
			
			// 设置教师教授的班级
			String[] classes = request.getParameterValues( "inclasses" );
			if( classes!=null && classes.length>0 )
			{
				ClassesDAO classesdao = DAOFactory.getDao(ClassesDAO.class);
				for( int i=0; i<classes.length; i++ )
				{
					Classes cls = classesdao.findById( classes[i], false );
					t.getClasses().add( cls );
				}
			}
			//	设置教师教授班级成功信息
			addMessage(request, "teacher.msg.class.success");
		}
		
		// 返回到教师列表页面
		return list( mapping, form, request, response );
	}
	
}

⌨️ 快捷键说明

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