仓酷云

标题: 发布一篇层层递进Struts1(七)详解DispatchAction [打印本页]

作者: 分手快乐    时间: 2015-1-18 11:01
标题: 发布一篇层层递进Struts1(七)详解DispatchAction
但是一些大型开发或者是保密型比较高的项目都会用java,原因有2点,一:java是开源的,不怕别人留后门,偷我工具,.net就不一样了,保持微软的一向风格,源代码不公开
经由过程后面几篇博客,不晓得人人有无发明这个成绩,固然如今能够天真把持跳转了,可是Action的数目仍是对照多,怎样既能包管跳转天真,还能削减Action的数目?这就是我们这篇博客所说的DispatchAction,如其名,能够了解为“分发式Action”,利用它能够制止为每一个Action创立一个类。
我们先来看一下实例。
UserAction
DispatchAction承继的是Action,它的特性就是把之前的多个Action兼并为一个,当多个Action联系关系较年夜时,能够像如许放在一同,削减Action类的同时,也下降了保护的难度。
  1. packagecom.tgb.drp.web.actions;
  2. importjava.util.Date;
  3. importjava.util.List;
  4. importjavax.servlet.http.HttpServletRequest;
  5. importjavax.servlet.http.HttpServletResponse;
  6. importorg.apache.commons.beanutils.BeanUtils;
  7. importorg.apache.struts.action.ActionForm;
  8. importorg.apache.struts.action.ActionForward;
  9. importorg.apache.struts.action.ActionMapping;
  10. importorg.apache.struts.actions.DispatchAction;
  11. importcom.tgb.drp.manager.UserManager;
  12. importcom.tgb.drp.model.User;
  13. importcom.tgb.drp.web.forms.UserActionForm;
  14. publicclassUserActionextendsDispatchAction{
  15. @Override
  16. protectedActionForwardunspecified(ActionMappingmapping,ActionFormform,
  17. HttpServletRequestrequest,HttpServletResponseresponse)
  18. throwsException{
  19. //挪用营业逻辑操纵
  20. ListuserList=UserManager.getInstance().findAllUserList();
  21. request.setAttribute("userlist",userList);
  22. returnmapping.findForward("list_success");
  23. }
  24. /**
  25. *用户删除
  26. *@parammapping
  27. *@paramform
  28. *@paramrequest
  29. *@paramresponse
  30. *@return
  31. *@throwsException
  32. */
  33. publicActionForwarddel(ActionMappingmapping,ActionFormform,
  34. HttpServletRequestrequest,HttpServletResponseresponse)
  35. throwsException{
  36. //猎取从页面表单中提交过去的值
  37. UserActionFormuaf=(UserActionForm)form;
  38. //获得必要删除的userId的汇合
  39. String[]userIdList=uaf.getSelectFlag();
  40. //挪用营业逻辑操纵
  41. UserManager.getInstance().deleteUsers(userIdList);
  42. returnmapping.findForward("del_success");
  43. }
  44. /**
  45. *用户增加
  46. *@parammapping
  47. *@paramform
  48. *@paramrequest
  49. *@paramresponse
  50. *@return
  51. *@throwsException
  52. */
  53. publicActionForwardadd(ActionMappingmapping,ActionFormform,
  54. HttpServletRequestrequest,HttpServletResponseresponse)
  55. throwsException{
  56. //猎取从页面表单中提交过去的值
  57. UserActionFormuaf=(UserActionForm)form;
  58. Useruser=newUser();
  59. BeanUtils.copyProperties(user,uaf);
  60. user.setCreateDate(newDate());
  61. //挪用营业逻辑操纵
  62. UserManager.getInstance().addUser(user);
  63. returnmapping.findForward("add_success");}
  64. /**
  65. *修正用户
  66. *@parammapping
  67. *@paramform
  68. *@paramrequest
  69. *@paramresponse
  70. *@return
  71. *@throwsException
  72. */
  73. publicActionForwardmodify(ActionMappingmapping,ActionFormform,
  74. HttpServletRequestrequest,HttpServletResponseresponse)
  75. throwsException{
  76. //猎取从页面表单中提交过去的值
  77. UserActionFormuaf=(UserActionForm)form;
  78. Useruser=newUser();
  79. BeanUtils.copyProperties(user,uaf);
  80. //挪用营业逻辑操纵
  81. UserManager.getInstance().modifyUser(user);
  82. returnmapping.findForward("modify_success");
  83. }
  84. /**
  85. *依据ID查询用户
  86. *
  87. *@parammapping
  88. *@paramform
  89. *@paramrequest
  90. *@paramresponse
  91. *@return
  92. *@throwsException
  93. */
  94. publicActionForwardfind(ActionMappingmapping,ActionFormform,
  95. HttpServletRequestrequest,HttpServletResponseresponse)
  96. throwsException{
  97. //猎取从页面表单中提交过去的值
  98. UserActionFormuaf=(UserActionForm)form;
  99. StringuserId=uaf.getUserId();
  100. //挪用营业逻辑操纵
  101. Useruser=UserManager.getInstance().findUserById(userId);
  102. //将user对象从Action传送到JSP页面
  103. request.setAttribute("user",user);
  104. returnmapping.findForward("find_success");
  105. }
  106. }
复制代码
<p>
在性能方面,在windows平台下,.net可能是占强项,要是把.net放在sun开发的操作系统上去运行呢?根本就运行不了,.net对其它操作系统的支持也很弱,性能也可能比不上java。
作者: 愤怒的大鸟    时间: 2015-1-20 12:47
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
作者: 因胸联盟    时间: 2015-1-29 07:10
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 柔情似水    时间: 2015-2-5 23:57
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者: 仓酷云    时间: 2015-2-14 09:32
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 山那边是海    时间: 2015-3-4 05:23
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
作者: 再现理想    时间: 2015-3-11 17:30
是一种将安全性(Security)列为第一优先考虑的语言
作者: 金色的骷髅    时间: 2015-3-19 03:47
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者: 第二个灵魂    时间: 2015-3-27 07:10
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2