仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 388|回复: 8
打印 上一主题 下一主题

[学习教程] 发布一篇层层递进Struts1(七)详解DispatchAction

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:01:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
但是一些大型开发或者是保密型比较高的项目都会用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:37 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
因胸联盟 该用户已被删除
板凳
发表于 2015-1-29 07:10:06 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
柔情似水 该用户已被删除
地板
发表于 2015-2-5 23:57:02 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
5#
发表于 2015-2-14 09:32:18 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
山那边是海 该用户已被删除
6#
发表于 2015-3-4 05:23:06 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
再现理想 该用户已被删除
7#
发表于 2015-3-11 17:30:45 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
金色的骷髅 该用户已被删除
8#
发表于 2015-3-19 03:47:49 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
第二个灵魂 该用户已被删除
9#
发表于 2015-3-27 07:10:19 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-21 02:32

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表