?? 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());
/**
* 跳轉(zhuǎn)到教師信息錄入頁面
*/
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
{
// 拷貝用戶提交的數(shù)據(jù)到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);
// 設(shè)置提示信息
addMessage(request, "teacher.msg.add.success");
// 清空表單中的數(shù)據(jù)
TeacherForm teacher = (TeacherForm) form;
teacher.setName(null);
teacher.setPassword(null);
teacher.setFullname(null);
}
else
{
// 設(shè)置用戶名重復(fù)提示信息
addMessage(request, "teacher.msg.add.nameexist");
}
// 跳轉(zhuǎn)到教師信息錄入頁面
return addin(mapping, form, request, response);
}
/**
* 教師信息列表功能
*/
public ActionForward list(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
// 得到TeacherDAO接口的實(shí)現(xiàn)類的實(shí)例
TeacherDAO dao = DAOFactory.getDao(TeacherDAO.class);
// 得到所有的Teacher對象的實(shí)例
List<Teacher> teachers = dao.findAll();
// 將Teacher對象的實(shí)例保存到Request中
request.setAttribute("teachers", teachers);
// 跳轉(zhuǎn)到教師信息列表頁面
return mapping.findForward("list");
}
/**
* 跳轉(zhuǎn)到教師信息修改頁面
*/
public ActionForward updatein(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
// 得到用戶提交的數(shù)據(jù)
TeacherForm teacher = (TeacherForm) form;
// 得到TeacherDAO接口的實(shí)例
TeacherDAO dao = DAOFactory.getDao(TeacherDAO.class);
// 得到要修改的教師對象的實(shí)例
Teacher t = dao.findById(teacher.getId(), false);
// 判斷是否找到相應(yīng)的教師信息
if (t != null)
{
// 找到教師信息,設(shè)置為請求的屬性
request.setAttribute("teacher", t);
// 跳轉(zhuǎn)到教師信息修改頁面
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
{
// 拷貝用戶提交的數(shù)據(jù)到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() );
// 設(shè)置提示信息
addMessage(request, "teacher.msg.update.success");
}
else
{
// 設(shè)置提示信息
addMessage(request, "teacher.msg.update.notexist");
}
}
else
{
// 設(shè)置用戶名重復(fù)提示信息
addMessage(request, "teacher.msg.add.nameexist");
if( t.getId()!=null && t.getId().length()>0 )
{
// 返回教師信息修改頁面
return updatein( mapping, form, request, response );
}
}
// 跳轉(zhuǎn)到教師信息列表頁面
return list(mapping, form, request, response);
}
/**
* 刪除教師信息
*/
public ActionForward delete(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
// 得到用戶提交的數(shù)據(jù)
TeacherForm teacher = (TeacherForm) form;
// 得到TeacherDAO對象的實(shí)例
TeacherDAO dao = DAOFactory.getDao(TeacherDAO.class);
// 得到要刪除的教師對象的實(shí)例
Teacher t = dao.findById(teacher.getId(), false);
if (t != null)
{
// 教師信息存在,刪除教師信息
dao.makeTransient(t);
// 設(shè)置提示信息
addMessage(request, "teacher.msg.delete.success");
}
else
{
// 設(shè)置要刪除的教師不存在的提示信息
addMessage(request, "teacher.msg.update.notexist");
}
// 返回教師信息列表頁面
return list(mapping, form, request, response);
}
/**
* 進(jìn)入教師任課班級頁面
*/
public ActionForward classes(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
// 得到前臺傳遞的參數(shù)
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
{
// 得到用戶提交的數(shù)據(jù)
TeacherForm teacher = (TeacherForm) form;
// 得到教師的信息
TeacherDAO dao = DAOFactory.getDao(TeacherDAO.class);
Teacher t = dao.findById(teacher.getId(), false);
if (t != null)
{
// 清空教師所教授的班級
t.getClasses().clear();
// 設(shè)置教師教授的班級
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 );
}
}
// 設(shè)置教師教授班級成功信息
addMessage(request, "teacher.msg.class.success");
}
// 返回到教師列表頁面
return list( mapping, form, request, response );
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -