📄 teacheraction.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 + -