DispatchAction和ForwardAction的使用

时间:2023-02-04 22:02:10
DispatchAction和ForwardAction的使用


我们之前使用struts框架来实现功能基本上市这几个步骤:


1.做页面
2.编写DAO类中的方法
3.编写和配置action


由于每实现不同的功能都要编写一个对应于功能的action类,
并且在struts-config.xml文件中配置相应的action,功能多
了起来,就会发现代码量很大,所以这时候我们可以使用DispatchAction


DispatchAction:通过DispatcAction,可以将多个使用同样的formbean整合成


一个action,这样会减少很多的代码量!


在使用DispathcAction之前,我们需要引入struts-extras-1.3.10.jar包,放


在WEB-INF的lib目录下即可!


编写一个类继承DispatchAction这个类,然后把每个类中的代码都写在对应的


方法中即可!(这里的方法需要自己创建,生成类的时候会出现一个excute方


法,我们只要根据这个方法和之前对应的类中代码来写方法,但是最后要把


execute这个方法删掉)


举个例子:
public ActionForward add(ActionMapping arg0, ActionForm arg1, 


HttpServletRequest arg2, HttpServletResponse arg3)
throws Exception {
User user = (User) arg1;/// 从用户输入的用户名和密码


都是存放到form中的(是因为在
/// struts-config.xml文件中指定了name="user",即用户


输入的用户名和密码都是存放到user中,也就是form
UserDAO dao = new UserDAO();


dao.addUser(user);/// 通过dao的addUser方法写入数据库



// TODO Auto-generated method stub
return arg0.findForward("list");
}
像这样的方法一样,每个功能都需要写一个方法!




ForwardAction:我们有时候把jsp页面写在WEB-INF下面,这也是一门技术,这


个时候我们就要用到ForwardAction


配置action如:


<action path="/main" type="org.apache.struts.action.ForwardAction" 


parameter="/WEB-INF/page/main.jsp"></action>
即配置action完成,不能直接Run as main.jsp,不然会报错,我们启动服务


器,然后在网址最后斜线后面输入main.do即可访问main.jsp页面,这也是我


们常用到的一门技术!