为StrutsStrutsStrutsStruts2.02.02.02.0做好准备Struts作为MVC2的Web框架,自推出以来不断受到开发者的追捧,得到用广泛的应用。作为最成功的Web框架,Struts自然拥有众多的优点:•MVC2模型的使用•功能齐全的标志库(TagLibrary)•开放源代码但是,所谓“金无赤金,人无完人”,Struts自身也有不少的缺点:•需要编写的代码过多,容易引起“类爆炸”•单元测试困难这些缺点随着Web的发展越来越明显。这就促生了Struts2.0,它的诞生能很好的解决上述问题。好啦,废话就不多说了,现在就让我们感受一下的Struts2.0的魅力吧。1.搭建开发和运行环境1.到Apache下载Struts2.0包2.打开Eclipse3.2新建Web工程点击菜单File\New\Project,出现如图1所示对话框图1新建工程对话框选择Web\DynamicWebProject,点击“Next”,出现图2对话框图2新建动态Web工程对话框在“ProjectName”中键入Struts2_HelloWorld,点击“New”,出现以下对话框图3新建服务器运行时对话框选择“Apache\ApacheTomatv5.5”,点击“Next”,出现以下对话框图4新建服务器运行时对话框点击“Finish”,关闭对话框。3.将Struts2.0lib下的jar文件加到工程的构建路径(buildpath)图5Struts2.0的lib目录按ctr+a全选,复制,再转到Eclipse窗口,在“ProjectExplorer”子窗口中选中Struts2_HelloWorld\WebContent\WEB-INF\lib,然后粘贴。经过Eclipse自动刷新“ProjectExplorer”子窗口,刚才所粘贴的jar文件应该会出现在Struts2_HelloWorld\JavaResources:src\Libraries\WebAppLibraries下,如图6所示:图6ProjectExplorer子窗口4.打开web.xml文件,将其修改为以下代码:?xmlversion=1.0encoding=ISO-8859-1?!DOCTYPEweb-appPUBLIC-//SunMicrosystems,Inc.//DTDWebApplication2.3//EN*/url-pattern/filter-mappingwelcome-file-listwelcome-fileindex.html/welcome-file/welcome-file-list/web-app5.新建struts.xml文件右键点击,Struts2_HelloWorld\JavaResources:src,出现如图7所示菜单图7新建Other菜单点击“Other”,出现新建对话框,如图8所示图8新建对话框点击“Next”,出现新建文件对话框,如图9所示图9新建文件对话框在“Filename”中键入sturts.xml,点击“Finish”,然后将struts.xml的内容修改为:!DOCTYPEstrutsPUBLIC-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN=struts-default.xml//struts6.新建index.html文件右键点击Struts2_HelloWorld\WebContent,出现如图10所示的菜单图10新建Other菜单点击“Other”,出现新建对话框,如图11所示图11新建对话框选择Web\HTML,点击“Next”出现如图12所示的对话框图12新建HTML页面对话框在“FileName”中键入index.html,点击“Next”,出现如图13所示的对话框图13模板选择对话框点击“Finish”,将index.html的内容修改为以下内容:!DOCTYPEHTMLPUBLIC-//W3C//DTDHTML4.01Transitional//ENhtmlheadmetahttp-equiv=Content-Typecontent=text/html;charset=UTF-8titleHelloWorld/title/headbodyh3HelloWorld!/h3/body/html7.将应用程序打包到tomcat上右键点击Struts_HelloWorld,出现如图14所示的菜单图14工程菜单点击“Export\WARfile”,出现如图15所示的对话框图15输出对话框选择“Web\WARfile”,点击“Next”,出现如图16所示的对话框图16输出路径对话框输入war文件的路径(如%tomcat%\webapps\Struts2_HelloWorld.war),点击“Finish”关闭对话框。8.启动tomcat,运行应用程序打开你的InternetExplorer,键入,窗口输出如图17所示图17HelloWorld窗口2.第一个Struts2.0应用程序——HelloWorld1.新建类包(package)右键点击Struts2_HelloWorld\JavaResources:src,出现如图18所示菜单图18新建菜单点击“New\Package”,出现如图19所示对话框图19新建Java类包对话框在“Name”键入tutorial,点击“Finish”关闭对话框。2.新建HelloWorld.java文件右键点击Struts2_HelloWorld\JavaResources:src\tutorial,出现如图20所示菜单图20新建菜单点击“New\Class”,出现如图21所示对话框图21新建Java类对话框在“Name”中键入HelloWorld,在“Superclass”中键入com.opensymphony.xwork2.ActionSupport,点击“Finish”关闭对话框。将HelloWorld.java的内容修改为:packagetutorial;importcom.opensymphony.xwork2.ActionSupport;publicclassHelloWorldextendsActionSupport{privateStringname;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicStringexecute(){name=Hello,+name+!;returnSUCCESS;}}3.在struts.xml中添加action映射(mapping)!DOCTYPEstrutsPUBLIC-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN=struts-default.xml/packagename=tutorialextends=struts-defaultactionname=HelloWorldclass=tutorial.HelloWorldresultHelloWorld.jsp/result/action/package/struts4.新建SayHello.jsp参考“新建index.html文件”步骤,弹出如图22所示对话框图22新建对话框点击“Next”,进入下一步,如图23所示图23新建JSP对话框在“Filename”键入SayHello.jsp,点击“Next”进入下一步,如图24所示图24模板选择对话框点击“Finish”关闭对话框,并将SayHello.jsp的内容修改为:%@pagecontentType=text/html;charset=UTF-8%%@taglibprefix=suri=/struts-tags%!DOCTYPEHTMLPUBLIC-//W3C//DTDHTML4.01Transitional//ENhtmlheadtitleSayHello/title/headbodyh3SayHelloto:/h3s:formaction=HelloWorldName:s:textfieldname=name/s:submit//s:form/body/html5.新建HelloWorld.jsp(请参考上一步),HelloWorld.jsp的内容为:%@pagecontentType=text/html;charset=UTF-8%%@taglibprefix=suri=/struts-tags%!DOCTYPEHTMLPUBLIC-//W3C//DTDHTML4.01Transitional//ENhtmlheadtitleHello/title/headbodyh3s:propertyvalue=name//h3/body/html6.重新打包发布应用程序先停止tomcat,再将tomcat里webapps下的Struts2_HelloWorld.war和Struts2_HelloWorld文件夹删除,参照“将应用程序打包到tomcat上”重新发布应用程序。7.启动tomcat,运行测试打开InternetExplorer,键入,窗口输出如图25所示图25SayHello.jsp在“Name”键入字符串(如World),点击Submit,转到HelloWorld.jsp页面,如图26所示图26HelloWorld.jsp3.单元测试HelloWorld在文章开始的时候提及,单元测试困难是Struts一大缺点。现在让我们在体验一下,在Struts2.0中是如何进行测试的。1.新建JUnit单元测试右键点击Struts2_HelloWorld\JavaResources:src\tutorial,弹出如图27所示对话框图27新建菜单点击“Next\Other”图28新建对话框选择“Java\JUnit\JUnitTestCase”,点击“Next”图29新建JUnit测试用例对话框选择“NewJUnit4test”,在“Name”中键入HelloWorldTest,在“Classundertest”键入tutorial.HelloWorld,点击“Next”图30选择方法对话框选中HelloWorld\execute方法,点击Finish。如果生成的HelloWorldTest.java文件的