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

📄 teacheraction.java

📁 java网上考试系统
💻 JAVA
字号:
package com.qrsx.exam.struts.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 com.qrsx.exam.dao.ClassesDAO;
import com.qrsx.exam.dao.DAOFactory;
import com.qrsx.exam.dao.TeacherDAO;
import com.qrsx.exam.dao.UserDAO;
import com.qrsx.exam.model.Classes;
import com.qrsx.exam.model.Teacher;
import com.qrsx.exam.model.User;
import com.qrsx.exam.struts.BaseAction;
import com.qrsx.exam.struts.form.TeacherForm;
import com.qrsx.exam.util.BeanUtils;

/**
 * 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 = BeanUtils.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 = BeanUtils.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 + -