仓酷云

标题: 来看Struts1.x系列教程(18):利用DispatchAction类挪用多个Action办法 [打印本页]

作者: 老尸    时间: 2015-1-18 11:21
标题: 来看Struts1.x系列教程(18):利用DispatchAction类挪用多个Action办法
C++编译的是本地码,优点是启动快,而且可以精确控制资源因此可以开发很高效的程序.缺点是编程麻烦,而且容易留下安全隐患.跨平台靠源代码在各个平台间分别编译(一处编写到处编译)
在利用Struts举措时,每个Action都必要编写一个类,而且要在struts-config.xml举行设置。这关于一个具有良多Action的Web程序来讲,事情量长短常年夜的。为此,Struts供应了DispatchAction类,这个类同意将一个Action作为一个办法来挪用。在Web扫瞄器中经由过程哀求参数来指定要挪用的举措。
固然DispatchAction类是一个笼统类,但个中却没有一个笼统办法。因而,DisplatchAction的子类不必完成任何DisplatchAction类中的办法。但假如要处置Action代码,就必需依据响应的Action来编写Action办法。一个Action办法除办法名和execute办法纷歧样外,其他的都和execute办法完整一样。但编写Action办法时要注重,Action办法名必需和用于指定举措的哀求参数值分歧(巨细写也必需分歧)。鄙人面的例子中演示了经由过程DispatchAction类完成办法和Action的对应。在这个例子中,有三个办法:fr、en和unspecificed。个中fr和en是两个Action办法,分离用于将以后页面转发到法文和英文页面,而当用于指定Action的哀求参数不存在时,则挪用unspecificed办法(在这个办法中将以后页面转发到中文页面)。在这个程序中利用的用于指定Action的哀求参数为language(读者能够指定本人的哀求参数)。
在<samples工程目次>srcaction目次创建一个MyDispatchAction.java文件,代码以下:
  1. packageaction;importjavax.servlet.RequestDispatcher;importjavax.servlet.http.*;importorg.apache.struts.action.*;importorg.apache.struts.actions.*;publicclassMyDispatchActionextendsDispatchAction{//forward到法文页面publicActionForwardfr(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){try{RequestDispatcherrd=request.getRequestDispatcher("/newGlobal.jsp?language=fr");rd.forward(request,response);}catch(Exceptione){}returnnull;}//forward到英文页面publicActionForwarden(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){try{RequestDispatcherrd=request.getRequestDispatcher("/newGlobal.jsp?language=en");rd.forward(request,response);}catch(Exceptione){}returnnull;}//在未利用language=fr和language=en作为会见参数的情形时挪用这个办法protectedActionForwardunspecified(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{try{//forward到中文页面RequestDispatcherrd=request.getRequestDispatcher("/newGlobal.jsp?language=zh");rd.forward(request,response);}catch(Exceptione){}returnnull;}}
复制代码
<p>
不得不提一下的是:.net网页编程是看到java红,而开发出来的工具。
作者: 第二个灵魂    时间: 2015-1-20 21:32
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.ckuyun.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
作者: 乐观    时间: 2015-1-22 21:13
Java是一种计算机编程语言,拥有跨平台、面向对java
作者: 莫相离    时间: 2015-1-25 17:10
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
作者: 再现理想    时间: 2015-2-3 11:58
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
作者: 不帅    时间: 2015-2-5 20:06
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
作者: 山那边是海    时间: 2015-2-11 03:55
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
作者: 飘灵儿    时间: 2015-2-18 13:26
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
作者: 愤怒的大鸟    时间: 2015-2-23 09:28
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
作者: 若相依    时间: 2015-3-5 00:48
是一种使用者不需花费很多时间学习的语言
作者: 柔情似水    时间: 2015-3-7 12:09
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: 因胸联盟    时间: 2015-3-11 13:34
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
作者: 谁可相欹    时间: 2015-3-18 14:36
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
作者: 老尸    时间: 2015-3-25 23:39
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。




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