Download presentation
Presentation is loading. Please wait.
Published byΜύρων Ταμτάκος Modified 5年之前
1
第十三章 Struts应用详解 在本章的内容中,将主要介绍Struts的基本知识, 对Struts处理用户请求过程的各个环节进行了详 细的介绍,并且还介绍在Struts中使用Validator、 Tiles等其他框架的基本方法,通过本章内容的学 习,读者可以掌握Struts的基本知识,具备 Struts开发的基本技能。
2
13.1 Struts基础知识 随着Web开发技术的日益成熟,在Web开发领域中 出现了许多软件开发框架,Struts就是一种基于 MVC经典设计模式的框架,也是目前Web开发中比 较成熟的一种开发框架,要使用Struts框架,首 先需要了解Struts的工作原理,在本节的内容中, 将简单介绍Strut框架的工作原理,并且对Struts 开发环境的配置方法做简单的说明
3
Struts 的工作原理 Struts是对JSP Model2设计标准的一种实现,下 面分别场区那个模型(Model)、视图(View)和 控制器(Controller)三个部分介绍Struts的体 系结构和工作原理,在一般情况下,Struts框架 中的模型是由JavaBean或者EJB构成,视图是有 JSP页面组成,控制器是由ActionServlet和 Action实现。(具体内容请参照书。)
4
Struts的工作流程 ActionServlet是Struts中核心的控制器,所有的 用户请求都必须通过ActionServlet的处理,而 struts-config.xml是Struts中核心的配置文件, 在这个文件中配置了用户请求URL和控制器Action 的映射关系,ActionServlet就是通过这个配置文 件把用户请求发送到对应的控制器中。
5
Struts的基本配置 在开发Struts应用程序的时候,需要对开发环境 进行简单的配置,其中需要把Struts的类库放到 项目WEB-INF/lib文件夹下,而且要把Strut的TLD 标签库表述文件放到WEB-INF目录下,然后还需要 在web.xml中配置ActionServlet这个控制器,从 而保证所有的用户请求都能被Struts框架接收并 处理。
6
13.2 简单Struts应用示例 在本节内容中,将展示一个简单的Struts应用程 序,在这个示例程序中,需要向服务器提交一个 简单的表单,服务器接收这个表单以后,把处理 的结果返回给用户。整个业务逻辑的处理非常简 单,这个示例程序的目的也就是向读者展示 Struts处理用户请求的具体流程,通过这个示例 程序需要读者了解的是如何使用Struts处理用户 请求,接下来介绍这个示例程序的具体开发过程。 在开发这个示例程序的时候,一般情况下需要以 下几个步骤。(具体内容请参照书。)
7
创建JSP页面 下面创建向用户提供表单输入的JSP页面,在这个 JSP页面中,仅仅包含了一个简单的文本输入域, 用来接收用户的输入,(具体内容请参照书。)
8
创建ActionForm 在上节内容中,创建了一个简单的JSP页面,在这 个JSP页面中提供了一个简答的用户输入表单,在 Struts中,需要为每一个用户输入表单提供一个 ActionForm对象,当用户提交表单的时候, Struts会自动把用户提交的表单信息保存在对应 的AcionForm中,在这个示例程序中,用户提交的 表单仅有一条输入信息,(具体内容请参照书。)
9
创建Action Struts中使用Action处理用户的请求,在这个示 例程序中,可以使用下面的Action来处理用户提 交的表单信息。
10
创建JavaBean模型组件 在上面的Action中,调用了一个JavaBean,在这 里仅仅是为了模拟在Action调用JavaBean模型组 件完成业务逻辑处理的方法,在这个JavaBean中 并没有提供具体的业务逻辑,仅仅是展示使用, 这个JavaBean的具体代码如下。(具体内容请参 照书。)
11
资源文件 在这个示例程序的JSP页面中,多次用到Struts中 的资源文件,在本质上这个资源文件就是简单的 属性文件,通过名值对应提供具体的配置内容, 下面就是在这个示例程序中用到的资源文件。 (具体内容请参照书。)
12
基本配置信息 struts-config.xml是Struts配置文件中的核心配 置文件,在这个配置文件中可以配置用户请求URL 和控制器Action之间的映射信息,ActionServlet 就是通过这个配置文件中完成用户请求的转发工 作,下面就是这个示例程序中struts-config.xml 配置文件的具体内容。(具体内容请参照书。)
13
运行结果 (具体内容请参照书。)
14
13.3 Struts中的表单处理器ActionForm
在Web应用程序的开发过程中,开发人员需要花费 大量的时间和精力处理表单问题,有的时候是通 过表单提交一些新的数据,有的是通过表单修改 数据,所有这些表单的处理在传统的Web开发中都 是非常复杂的。在本节中将介绍Struts中的表单 处理组件ActionForm。
15
ActionForm简介 在传统的Web应用程序开发中,繁杂的表单处理工 作给开发人员带来了巨大的困难,在传统的Web开 发语言中,没有组件可以自动收集用户输入的表 单内容,开发人员不得不在程序中手工提取表单 的值。例如在表单中有这样一个文本输入域。 <input type=”text” name=”password”>(具 体内容请参照书。)
16
13.3.2 ActionForm基本功能 ActionForm不仅实现了表单字段保存的功能,而 且还提供了数据缓冲、数据验证的功能。
在传统的Web开发中,验证用户提交的表单数据可 以采取两种方法,一种是在表单提交到服务器后, 在服务器端使用JavaBean来进行验证,在这种验 证方法中,如果数据验证失败以后,需要返回原 来的页面,但是用户提交的所有表单数据已经被 刷新,除非采用特殊的程序处理,否则用户得到 的会是一个全新的表单,前面输入的任何数据都 没有了。
17
13.4 Struts中的控制器 Action是Struts中的主要控制器,在本节的内容 中,将介绍Action的工作原理和基本使用方法, 同时对DispatchAction和LookupDispatchAction 这两个控制器的使用方法进行简单的介绍,并通 过两个示例程序展示这两个控制器的基本使用方 法。
18
Action简介 在Struts中,所有的用户请求都会经过 ActionServlet的处理,而实际的工作是交给 Action对象来处理的,ActionServlet可以从配置 文件中创建ActionMapping对象,并从 ActionMapping对象中可以找到要使用的Action, 然后将用户的请求转交给Action。
19
Action的基本使用方法 在开发Action的时候,需要继承 org.apache.struts.action.Action这个类,在子 类中加入所需的业务逻辑处理,这些子类会返回 ActionForward对象,ActionServlet接受这个对 象,把页面转发到指定页面,从而把用户请求的 结果发送到对应页面。(具体内容请参照书。)
20
DispatchAction的使用方法 在前面的介绍中,为每一个动作提供一个Action 类,但是在很多时候,一些相似的动作是可以在 统一个模块中进行处理的,但是在Struts的 Action类中,只提供一个execute()方法,一个 用户请求URL只能对应一个Servlet,在Struts中 提供了另一个控制器类 org.apache.struts.actions.DispatchAction, 这个类可以将完成相关业务逻辑所需要的方法集 中在一个DispatchAction类中,在继承 DispatchAction类之后,不是重写execute()方 法,而是编写自己需要的方法,在不同的方法中 处理不同的动作
21
13.4.4 LookupDispatchAction的使用方法
在DispatchAction中可以在同一个控制器中处理 多个动作,这个时候只能是通过URL调用控制器, 控制器根据用户提交的参数决定调用哪个方法来 处理用户的请求。这种情况下不能通过表单提交 用户的请求信息。(具体内容请参照书。)
22
13.5 Struts中的页面转发控制 Struts提供了ActionForward和ActionMapping这 两个类用来控制页面转发,在本节内容中将简单 介绍这两个类的基本使用方法。
23
ActionForward简介 在使用Struts开发的Web应用程序中,Action在完 成用户逻辑处理以后,需要把处理结果展示给用 户,这个时候就需要程序控制页面的转发,在 Struts中使用ActionForward对象控制程序的转向, ActionForward对象是一种配置对象,代表了一般 的Web资源,可以是JSP页面、Servlet以及其他 Action,ActionForward对象映射的是Struts配置 文件struts-config.xml中的<forward>元素,在 这个元素中封装了目标页面的URI。
24
使用ActionForward传递参数 ActionForward不仅承担着控制程序转发的任务, 而且还可以在转发页面的时候同时传递参数,在 ActionForward中,可以在struts-config.xml定 义<forward>元素的时候指定参数以及内容。也可 以在程序中动态添加参数。下面将介绍 ActionForward传递参数的更多用法。
25
ActionMapping简介 在struts-config.xml配置文件中,每一个 <action>元素都对应一个ActionMapping对象,当 用户请求被ActionServlet接收以后, ActionServlet会根据用户请求URL以及<action> 元素设定的path属性确定对应的ActionMapping对 象,ActionMapping对象会告诉ActionServlet使 用哪个Action对象处理用户请求。
26
13.6 Struts标签库 为了方便开发人员使用Struts开发Web应用系统, 在Struts框架中提供了内置的标签库,使用这些 标签库可以方便构造表示层的JSP页面。在前面章 节中介绍的示例程序中,已经使用到一部分 Struts标签,虽然目前很大一部分的Web程序仍然 采用传统的HTML标记来实现表示层的页面,但是 在Struts应用的开发过程中,Struts标签的使用 还是不可避免的,在本章的接下来的内容中,将 简单介绍Struts中常用的基本标签库。
27
html标签 HTML标签是Struts标签中基本的标签。Struts框 架的HTML标签库中提供了对应普通HTML页面中的 标签元素。接下来介绍Struts标签中的常用的标 签。(具体内容请参照书。)
28
bean标签 Struts的bean标签库用来在JSP页面中处理 JavaBean,不仅可以访问已经存在的JavaBean, 而且还可以定义新的JavaBean。接下来介绍bean 标签库中常用的标签。
29
logic标签 在传统的处理方式中,是用脚本控制页面中的逻 辑,在Struts中提供logic标签库控制页面的基本 逻辑处理。接下来介绍logic标签库中常用的标签 (具体内容请参照书。)
30
13.7 在Struts中使用Validator验证框架
在使用ActionForm时,可以把验证用户表单输入 的工作放在ActionForm的vailidate()方法中, 在Struts中,可以整合Validator验证框架进行表 单的输入验证工作。在接下来的内容中,将介绍 Struts中使用Validator验证框架的基本方法。
31
Validator验证框架的配置 在前面章节中使用MyEclipse配置Struts开发环境 的时候,已经默认把Validator框架的类库文件拷 贝到项目的WEB-INF/lib中,而且还把Validator 框架需要的validator-rules.xml文件拷贝到WEB- INF目录中。同时如果要使用Validator,还需要 在WEB-INF目录下添加Validator验证规则文件, 在这里我们需要在WEB-INF目录下添加一个 validation.xml文件。(具体内容请参照书。)
32
Validator的内置验证器 在Validator框架中内置了一些验证器,例如非空 验证、 验证、整型数据验证、最大长度验证、 最小长度验证等,这些验证方法都是Validator框 架中内置的,可以调用这些验证器对用户提交的 表单进行验证。下面将简单介绍这几种内置验证 器的基本使用方法。
33
Validator验证框架的简单示例 在下面的示例程序中,展示了Validator中内置的 几个验证器的基本使用方法,下面就是这个示例 程序中的JSP页面,在这个页面中提供了一个简单 的用户注册表单,在这个示例程序中将对用户输 入的表单信息进行验证,(具体内容请参照书。)
34
13.8 在Struts中使用Tiles Tiles提供一个类似桌面应用程序版面管理的机制, 通过配置文件可以定义版面配置,以及其中需要 插入的内容网页,在Tiles中内容网页可以和配置 文件相分离,通过使用Tiles可以随时更换内容网 页,从而可以重用版面配置文件。在下面的内容 中,将介绍在Struts中使用Tiles框架的基本方法。
35
在Struts中配置Tiles框架 在Struts中使用Tiles框架的方法是非常方便的。 在前面使用MyEclipse配置Struts开发环境的时候, 已经自动吧Tiles需要用到的标签库描述文件 struts-tiles.tld拷贝在项目的WEB-INF目录下, 现在还需要在WEB-INF目录下添加一个tiles- defns.xml文件,在这个文件中描述了Tiles框架 的配置信息。
36
创建模版页面 在下面的示例程序中,将展示Tiles模版的基本使 用方法,在使用Tiles框架的时候,首先需要创建 Tiles模版,然后在需要使用这个模版的时候,直 接调用即可。(具体内容请参照书。)
37
使用模版页面 在上一章节中,创建了个名为mainlayout的页面 布局,定义好这个布局以后,就可以在后就可以 在程序中使用这个布局,在这个布局中,已经指 定了header和footer的内容,在使用这个布局的 时候,只需要添加网页中间部分的主体内容即可。 (具体内容请参照书。)
38
13.9 小结 在本章内容中,介绍了Struts的基本知识,在目 前的Web开发中,Struts已经成了MVC事实上的标 准大量的Web程序使用Struts进行开发,所以读者 有必要掌握这项基本的技术,本章中不仅介绍了 Struts的基本工作原理、基本使用方法,而且还 介绍了在Struts中如何整合第三方的框架,另外, 在本章的内容中,对于比较复杂的知识点都提供 了具体的示例展示,读者可以通过这些示例程序 深入了解对应的知识点,并逐步在自己的项目中 学习使用。
Similar presentations