Struts2系列教程v3.0

所需积分/C币:9 2012-10-19 14:48:49 2.96MB PDF
1
收藏 收藏
举报

Struts2系列教程v3.0
制作日期:2009228 struts2系列教程 其 第15章集成 IBATIS 第16章集成 JQUERY 16.1什么是/uery 16.2 jquery作CSS 16.3 queryiMEDOM 16.4、 query处理tert 16.5 /query处理ml 16:4 query处埋jsO 第17章投票管理系统 第18章无纸化办公管理系统 第19章某数据采集系统 第1章 Struts2入门 Struts2的学习持续有一段时间了,也经历个几个小项日。身边也有一些朋友在逐步使用 struts2, 为了减轻他们的学习曲线,我把自己的学习过程用文字记录下米,供他们参考。现在也决定把它共享出 来,请大家批评指正。 Struts2虽然简单,但要一一描述清楚,可能会形成厚厚地一本书。所以我这里仅仅记录与工作相 关的内容。有些部分请读者朋友查看相应的帮助文档或专业书籍 环境说明 1. Struts版本:2.1.2 C Welcoe-Windlovs Inter et [xplore [ANN] Practical /pache S ruts 2 Web 2. c Drojects pache Con y Technologics Us2008 he breadcrumbs nave been servedl struts 1, 2: call ing an action by javascript November 3-7 support parting secur ty Recent releases Davalopmant Scroll down fcr more about Apache struts, the Apache struts project, and struts for on Chare delines May 2003-Struts 2.1.2 Beta Release The latest release of stru 2 is str to Bct cr 26 March 2003. For the latest producti ti U //uls, dpcL le, ur y/uuvrIludu e Ir terel 此处下载的是 struts2.1.2all 大漠孤烟 群 制作日期:2009228 struts2系列教程 其 DOwnload a Rclcaso-Windows Internet Explorer Struts 2.1.2 pache struts 2. 1,2 s the first beta release of the struts 2.1 seres. It is available in ful uisLribuliurl, uI ds seualdle Ibi aly Le, exdI ple dId wocu: I el lLd Liu EapA甲3ap(pcwe o soruts-2.1.2-apps zip (22mb)[GP]IVCE] 7p(4mh)Lpp」LMn」 eSsEntial Dependencies (inly (IFva 4 o sruts-2.1. 2-jdkls zip(3mb)[PGP] [MD5] struts-2.1.2-docs zip(55mb)[PGP][VD51 w Cource 2 src ziF (20b! [PGP] [MD5] 2.JDK版本:JDK1.5 3. Tomat版本:6 4.WySq1版本:5.0 6. MyEclipse版木:6 狳无特别说明,后面的程序都基于以上环境。有些内容是基于 struts-2.1.2所提供的案例。 当提父一个ⅢIM表单到这个框架中的时候,输入并不是被发送到服务页,而是被发送到你提供的 Java类,这些类被称为 Action。在这些 Action执行完后,选择某一个资源来呈现返回结果,这个资源 般是页面,但也可以是PDF文件,或者是 Excel文件,亦或是 Java applet窗口。 假设你想要创建一个“ Hello world”的例子来呈现欢迎信息,在你准备好廾发坏境后,为了创建 个“ Hello World”的例子,你需要做如下三件事情: 1、创建一个jsp页面来呈现欢迎信息 2、创建一个 Action类来创建信息 3、在配置文件中配置 action和页面的映射关系。 注意:为了创建这个组件,我们将⊥作流分成几乎无人不晓的三部分:视图、模型和控制器。分离 这三部分的原因是当系统变得越来月复杂的时候,我们能够更好的管理。 准备工作 建立web工程,其中工程名为 tutorial,在 Webroot卜引入 struts2的1ib下的如卜4个包 大漠孤烟 群 制作日期:2009228 struts2系列教程 其 回ntr2.72jr aeoesonsbeanutils-1.6.jar a] comsons-chain-1.1.jar 告mns1 ocEan1.0.4.j4 comsons-loggincapi-1. 1. jar a]commons validator-1.3.0.jar freemarker2.3. 8. jar o12.6.11.jar -20.8.j astruts2-codebehind-plugir-2.011.jar alstruts2-conficbrowserplugin-2.0 11,ju 型2一eFe一20.11.ja struts2-jasperreportrplugin2.011.jar struts2-jfreechart plugin.0. 11. jar astruts2-jsf-plugin-2.011.jar astrut 2-pell-multipart-plugin-2011.j 1struts2-plexusplugin-2.011.jar astrutsz-sitegraph-plngin-2.011.jur dstrutse-siteaesh-plugin-2.011 astrutx2-sprincplugin-2.011.jar astruts2-struts1-plugin-2.0.11.jar astruts2-tiles-plugin-2.011.jar r13.5.j4F Itiles-api-2. 0.4.jar Etiles-eore-2.0.4.jar atiles-jsp-2.0.4.jar twork 2.0.4.jar 在web.xm1文什中增加 struts2的 FilterDispatcher,修改后的veb.xn1如下: K?xmI version=1.0 encoding="UtF-8 ?> web-appid=webapp_9version=2.1xmins=http://java.sun.com/xml/ns/j2ce xmins:xsi=http://www.w3.org/2001/xmlschema-instance xsischemalocation=http://java.suncom/xm1/ns/j2ee http://java.suncom/xml/ns/j2ce/web-app24.xsd"> <display-name>tutorial</ display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org. apache struts2 dispatcher. FilterDispatcher</filter-class> </filter) filter-mappin <filter-name>struts2</filter-name) Kurl-pattern>/*/url-pattern </filter-mapping> swelcome-file-list Kwelcome-file>index. html/welcome-file? K/welcome-file-list> K/web-app 注意: struts2配置了一个过滤器来执行分发功能。 代码 1、我们需要一个jsp页面来呈现信息,He1 LoWorld.jsp页面代码如下所示 K@ page content Type= text/html; charset=UTF-8"%> <%@ taglib prefix-s" uri-"/struts-tags"%> <html Head> <titleHello World!/title> 大漠孤烟 群 制作日期:2009228 struts2系列教程 其 <s: property value-"message"/> /h2 </body </htmI> Struts2标签引用也简单多了,只需要一句就可以 2、我们需要一个 Action类来创建信息,代码如 package org. xmh. import java. util. Date import java. text DateFormat import com. opensymphony xwork2. ActionSupport public class HelloWorld extends Action Support I private string mes sage public String getMessage( i return message public string execute(i message llo Wor ld. now is DateFormat get(. format (new Date) return SUCCESS 3、我们需要在配置文件中进行相应配置米将两者联系起來。让我们编辑src下的 struts.xml文件, 该文件内容如下: <! DOCTYPE struts public -//Apache Software Foundation//DTD Struts Configuration 2.0//EN http://struts.apacheorg/dtds/struts-2.0.dtd> <struts? Kpackage name=tutorial extends="struts-default> Action name="llelloWorld class=tutorial. llelloWorld"> Result>/HelloWorld. jsp(/result> /action <!-- Add your actions here K/package> K/struts> 4、发布与测试 部署该应用程序并在IE地址栏中输入http://localhost:8080/struts2demo/helloworld.action 可以看到标趣栏为: Hello World,并且显小“ Struts is up and running!”的面呈现在我们面前。 C Hello World!- Windows Internet Explorer 匚 ③·h/ist3/2m4%an +× 中Hl Hello world, Now is08-828上午4:57 成 Internet 代码是如何⊥作的? 大漠孤烟 群 制作日期:2009228 struts2系列教程 其 上述He1 lo World的小例用处理流程如下所小: Tomc -intel Dispatc 1ar Llello orld isR Llellownorlc 片 accute万 送于名户端 用文字来描述这个处理过程如下: ①浏览器请求http://localhost:8080/tutorial/helloworld.action发送到web应用服务器。 ②容器接收到了Web服务器对资源 llelloworld. action的请求,根据web.xm1中的配置,服务器将 包含有. action后缀的请求转到org. apache. struts2. dispatcher. FilterDispatcher类进行处理。调用 这个 FilterDispatcher,进入 struts2的流程中。 ③框架在 struts.xml配置文件中査找名为 Hellowor ld的 action对应的类。框架初始化该 Action 并且执行该 Action类的 execute方法; ④ execute方法将信息放入 message变量中,并返回成功。 ⑤框架检査配鲎以査看当返回成功时对应的臾面。框架告诉容器来获得请求返凹的结果臾血 ⑥<s: property value=" message"八标签调用 Helloworld的 Action类中的 getMessage方法来获 得 message的值。 ⑦标签显示 message并以HTM格式呈现给用户; 四、测试 Action 测试 Action很简单,以下是上述 Helloworld的 Action类的测试类的代码: ASL山e! I New Init 3 heat C Nw TUnit t bg Source folr: strut: 2e mmac Package org.xMhdemo rea; ruildMtHTk,1e的 W鸭号 od sbbs nuul you lie to agate 厂的物数图 H pompano 厂 cortin low Du yu Want w add sumn图Ur贴团据可以以阳 Chx umr tot E ue Class Under Test Test stbs will be gener ated fop=lss: 大漠孤烟 群 制作日期:2009228 struts2系列教程 其 package org. emo import junit framework. Test Case import com opens ymphony. work2 Action Support public class Tes tHello extends TestCase public void testHelloWorld( throws Exception HelloWorld hello world- new HelloWorldO String result=hello world. execute) assertTrue (ActionSupport SUCCESS equals(result)) 五、需要记住的东西 本框架利用 Action来处理HTML的表单以及其余请求。 Action返回一个结果的名字字符串,例如 SUCCESS、 ERROR以及INPT等,从 struts.xml中获取映射信息。一个给定的结果字符串将选择一个页 面或其他资源(图片或PDF)来返回给用户。 当一个jsp被载入的时侯,通常有一些动态变化的元素需要 Action来载入。为了更加容易的显示 动态数据,本框架提供了些可以跟HML配合使用的标签。 六、问题汇总 如果你的程序无法正常运行,并且显示如下的错误: 正重: Exception starting filter struts2 Unable to load configuration.- bean jar: file: /F: /Struts2/Struts2/ WebRoot/WEB-INF/lib/struts2-core-2 1 2. jar!/ struts-defau lt.xm1:46:178 at com opensymphony xwork2 config. ConfigurationManager. getConfiguration(Conf'igurationMan ager. java: 58) org. apache. struts2 dispatcher Dispatcher init PreloadConfiguration(Dispatcher. java: 37 at org. apache struts2 dispatcher Dispatcher init(dispatcher. java: 424) 原因是由于有些文件的版本不匹配造成的,请将1ib包中相关的 commons组件包拷至项日之中并覆 盖之即可 \struts2\struts-21.2-allstruts-2,1.2\ ib 名称 id aopalliance-1. jar s-1.1 idcommons-beanutils-1,7.0. jar tHcommons-chain-1.1. jar Commons-c0| ections32同a commons-fileupload-1. 2. 1. jar Icommons-io-1,3.2.jar 大漠孤烟 群 制作日期:2009228 struts2系列教程 其 如果你的程序出现如下的错误信息 严重: Could not find action or result There is no Action mapped for name space/ and action name login.-[unknown location] at com opensymphony. xwork2. DefaultActionProxy prepare(DefaultActionProxy java: 186) org. apache struts2 impl. Strut sActionProxy Factory. createAction Proxy(StrutsActionProxy Factory. java: 41) at org. apache struts2 dispatcher. Dispatcher. serviceAction (Dispatcher. java: 494) at java. lang Thread run(Unknown Source 请确保你的 struts2.xm1放在 classes下,亦即你的 struts2.xml是否位于src日录之下。 第2章 Struts2晋级 Struts2实际上是在 Webwork基础上构建起来的MWC框架。从 Struts2的源代码中可以看到,有很 多都是直接使用的 work( Webwork的核心技术)的包。既然从技术上来说 Struts2是全新的框架,那么 就让我们来学习一下这个新的框架的使用方法 如果人家使用过 Struts1.x,应该对建立基于 Struts1.x的Web稈序的基本步骤非常清楚。让我们 先米回顾一下建立基于 Struts1.x的Web程序的基本步骤。 1、安装 Struts由于 Struts的入口点是 Actionservlet,所以得在web.xml中配置一下这个 Servlet 2、编写 Action类(一般从org. apache. struts. action. Action类继承)。 3、编写 Actionfort类(一般从org. apache. struts. action. Actionfori类继承),这一步不是必 须的,如果要接收客户端提交的数据,需要执行这一步。 4、在 struts config.xm1文件中配置 Action和 Actionform 5、如果要采集用户永入的数据,一般需要编与若干JSP贝面,并通过这些JSP贞面中的form将数 据提交给 Action。 卜面按编写 struts1.ⅹ程序的这扛步和 struts2.x程序的编写过程一一对应,看看它们的异同。编 写一个基于 Struts2的Web程序。这个程序的功能是让用户录入两个整数,并提交给一个 Struts action 并计算这两个数的代数和,如果代码和为非负数,则跳转到 positive.jsp页面,否则跳转到 negative.jsp 页面。 【第1步】安装 Struts2 这一步对」 Struts1.x和 Struts2都是必须的,只是安装的方法不同。 Struts1的入口点是一个 Servlet,而 Struts2的入口点是一个过滤器 Filter)。因此,Sτruts2要按过滤器的方式配置。下面是 在web.xm1中配置 Struts2的代码 <filter> <filter-name>struts2</filter-name> <filter-class> org. apache struts2 dispatcher. FilterDispatcher K/filter-class> /filter Kfilter-mapping> <filter name)struts2</filter name> Kurl-pattern/*</url-pattern> K/filter-mapping, 【第2步】编写 Action类 这一步和 Struts1.x也必须进行。只是 Struts1.x中的动作类必须从 Action类中继承,而 Struts2.x 的动作类需要从com. opensymphony. work2. ActionSupport类继承。下面是计算两个整数代码和的 大漠孤烟 群 制作日期:2009228 struts2系列教程 其 Action类,代码如下: package action import com. opensymphony. xwork2 Action Support public class firstAction extends ActionSupport private int operand1 private int operand2 public string execute( throws Exception if( getSum O〉=0)/′如果代码数和是非负整数,跳到 positive.jsp页面 return positive else/′如果代码数和是负整数,跳到 negative.jsp页面 return negative public int getOperand1() return operandI oublic void se andI(int operand1) System. out. println(operand1) public int ge nd2( turn operand2 bli nd2 (int ope System. out. println(operand2) th public int getSum() return operand1- operand2;//计算两个整数的代码数和 从上面的代码可以看出,动作类的一个特征就是要覆盖 execute方法,只是 Struts2的 execute方 法没有参数了,而 Struts1.x的 execute方法有四个参数。而且 execute方法的返回值也不同的 Struts2 只返回一个 String,用」表述执行结果(就是一个栎志)。上面代码的其他部分将在下面讲解。 【第3步】编写 Actionform类 在本例中当然需要使用 Actionform了。在 Struts1.x中,必须要单独建立一个 Actionform类(或 是定义一个动作Form),而在 Struts2中 Action form和 Action已经二合一了。从第二步的代码可以看 出,后面的部分就是应该写在 Actionform类中的内容。所以在第2步,本例的 Actionform类已经编写 大漠孤烟 群

...展开详情
试读 127P Struts2系列教程v3.0
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • 分享宗师

    成功上传21个资源即可获取
关注 私信
上传资源赚积分or赚钱
最新推荐
Struts2系列教程v3.0 9积分/C币 立即下载
1/127
Struts2系列教程v3.0第1页
Struts2系列教程v3.0第2页
Struts2系列教程v3.0第3页
Struts2系列教程v3.0第4页
Struts2系列教程v3.0第5页
Struts2系列教程v3.0第6页
Struts2系列教程v3.0第7页
Struts2系列教程v3.0第8页
Struts2系列教程v3.0第9页
Struts2系列教程v3.0第10页
Struts2系列教程v3.0第11页
Struts2系列教程v3.0第12页
Struts2系列教程v3.0第13页
Struts2系列教程v3.0第14页
Struts2系列教程v3.0第15页
Struts2系列教程v3.0第16页
Struts2系列教程v3.0第17页
Struts2系列教程v3.0第18页
Struts2系列教程v3.0第19页
Struts2系列教程v3.0第20页

试读结束, 可继续阅读

9积分/C币 立即下载 >