为什么需要分派Action?
如果每个请求对应一个action就会造成action过多,程序显得比较臃肿。
解决方法:减肥(可以把一类请求写到一个action中处理),分派action好处:
1.程序简洁
2.利于维护和扩展
步骤:
1.新建一个Action,继承Action的子类DispatchAction
2.配置parameter属性(决定调用action中的哪个方法,类似于type的作用)
3.在页面的超链接为flag设置方法名,决定到了action后调用哪个方法
action代码:
/**
* 用于响应登录请求
* @param mapping
* @param form
* @param request
* @param response
* @return
*/
public ActionForward login(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UsersForm usersForm=(UsersForm)form;
System.out.println("进入了login方法,用户名是:"+usersForm.getUsername());
if(usersForm.getUsername().equals("pang")&&usersForm.getPassword().equals("123")){
return mapping.findForward("loginSuccess");
}else{
return mapping.findForward("gotoLogin");
}
}
/**
* 用于响应退出请求
* @param mapping
* @param form
* @param request
* @param response
* @return
*/
public ActionForward logout(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
System.out.println("进入了退出方法");
request.getSession().invalidate();
return mapping.findForward("gotoLogin");
}
页面不同操作附不同的方法名给flag参数,实现一个action执行多种操作
登录操作(调用login方法):
退出操作(调用logout方法):