struts1的基本知识点—DispachAction

来源:互联网 发布:河北行知教育 编辑:程序博客网 时间:2024/05/18 11:25

DispachAction是动态的指定Action。也就是说在view层的不同的请求和url参数被ActionServlet所截获,

并在struts-config.xml中根据请求得到参数不同来指定(调用)Action中不同的方法,根据方法的返回值来跳转相应的页面。

    这样可以很好的解决Action膨胀的问题。以前我们继承struts中的Action只处理一种请求,也就是说不同的请求会有相应的Action类,这样Action类就会越来越多,就会照成Action膨胀。用DispachAction会根据请求的不同来指定调用哪个方法,这样可以有效的解决Action膨胀的问题。


如何使用DispachAction

1.写一个UserAction继承DispachAction

写一个addUser方法添加用户

//添加Userpublic ActionForward addUser(ActionMapping mapping, ActionForm arg1,HttpServletRequest arg2, HttpServletResponse arg3) throws Exception {new UserService().saveUser(new User());return mapping.findForward("ok");}

写一个deleteUser方法删除用户

//删除Userpublic ActionForward deleteUser(ActionMapping mapping, ActionForm arg1,HttpServletRequest arg2, HttpServletResponse arg3) throws Exception {return mapping.findForward("delok");}

2.在页面上

<form action="User.do?command=addUser" method="post">   username:<input type="text" name="username"><br>   password:<input type="password" name="password">   <input type="submit" value="提交">   </form>      <a  href="User.do?id=1&command=deleteUser">删除id为1的用户</a>

3.在struts-config.xml配置

<action-mappings><action path="/User" parameter="command"type="com.jxau.action.UserAction"><forward name="ok" path="/add_ok.jsp"></forward><forward name="delok" path="/del_ok.jsp"></forward></action></action-mappings>

总结:用DispatchAction可以动态的控制Action,根据一个模板一个Action的原则来管理一个业务逻辑。有效的防止Action膨胀的问题






原创粉丝点击