的一种开放源代码实现_第1页
的一种开放源代码实现_第2页
的一种开放源代码实现_第3页
的一种开放源代码实现_第4页
的一种开放源代码实现_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Struts,MVC 的一种开放源的一种开放源代码实现代码实现 李连鹏 Struts nStruts 产生背景nStruts中MVC结构的实现nStruts的标签库nStruts的使用nStruts相关资源Struts 产生背景n利用Servlet和jsp技术开发Web 应用的不足nCrag McClanahan 在2000年的时候提出结合两种技术,利用MVC思想实现Web应用开发的框架Struts,并且亲自参与了Struts的开发工作n现在Struts是Apache软件基金的一个子项目,并且已经成为利用Sun技术开发Web应用的最流行的框架MVC结构的实现 MVC架构是随着smalltalk

2、 语言的发展提出的,它是一个著名的用户界面设计架构。 MVC模式不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。 MVC结构的实现nMVC是Model-View-Controler的简称nModel代表了数据对象nView用来在屏幕上显示数据对象的当前状态,是应用程序的外观nController定义了用户接口对用户输入反应的方式,它处理数据对象MVC结构的实现nStruts是利用MVC思想,结合了Servlet,Jsp,以及Jsp标签技术的开发Web 应用程序的框架MVC结构的实现nstruts-config.xml Struts配置文

3、件nActionServlet 控制器nAction Class 包含事务逻辑nActionForm 显示模块数据struts框架的组成部分nActionMapping 帮助控制器将请求映射到操作nActionForward 用来指示操作转移的对象nActionError用来存储和回收错误nStruts标记库Struts框架的优势n良好的架构和设计n可重用,模块化,扩展性好nOpen sourcestruts-config.xmlnStruts-config.xml集中了所有页面的导航定义。对于大型的WEB项目,通过此配置文件即可迅速把握其脉络,这不管是对于前期的开发,还是后期的维护或升级都是

4、大有裨益的。掌握Struts-config.xml是掌握Struts的关键所在。struts-config.xmlnStruts-config.xml中包括八个子元素nnnnnnnnstruts-config.xml(FormBean部分)n n n struts-config.xml(全局转发部分)nn n struts-config.xml(action部分)nn n n n n n struts-config.xmlAction ClassesnAction 类定义在org.apache.struts.action,对于每一个应用中的功能,必须要扩展这个action类,它是业务逻辑的一个

5、包装。Action 类的用途是将 HttpServletRequest 转换为业务逻辑。nAction中的public ActionForward execute( ActionMapping mapping, ActionForm form, ServletRequest request, ServletResponse response )throws IOException, ServletExceptionActionFormnActionForm 维护 Web 应用程序的会话状态。nActionForm 是一个抽象类,必须为每个输入表单模型创建该类的子类。ActionForm的使用n

6、假定有一个由 HTML 表单设置的 LogonForm。Struts 框架将执行以下操作:n检查 LogonForm是否存在;如果不存在,它将创建该类的一个实例。nStruts 将使用 HttpServletRequest 中相应的域设置 LogonForm的状态。ActionForm的使用nStruts 框架在将 LogonForm传递给LogonAction 之前将更新它的状态。 nstruts-config.xml 文件控制 HTML 表单请求与 ActionForm 之间的映射关系。 n可将多个请求映射到 LogonForm 。ActionServletnActionServlet 是

7、struts框架 MVC 实现的 controller 部分,它是这一框架的核心。nActionServlet 创建并使用 Action、ActionForm 和 ActionForward。ActionServlet的基本功能n截获用户的Http请求n把这个请求映射到相应的Action类。n创建一个ActionForm bean实例,将form请求放入formbean的实例中ActionServlet的基本功能n调用Action实例的execute()方法n将ActioForm bean,Action Mapping对象,request和response对象传给Action的execute(

8、)方法nexecute返回一个ActionForword对象,根据方法执行情况转到相应的jsp页面.MVC结构的实现Struts标记库nStruts框架包括自定义标签库,它可以用在很多方面。尽管这些库并不属于MVC框架,但使用它们可以在页面完全不出现java脚本的情况下实现所有的功能。Struts标记库nstruts-bean taglib:包含在访问bean和bean属性时使用的tag,也包含一些消息显示的tag。nstruts-html taglib:包含用来生成动态HTML用户界面和窗体的tag。nstruts-logic taglib :包含的tag用来管理根据条件生成输出文本,和其它

9、一些用来控制的信息。nstruts-template taglib包含的tag用来定义模板机制。Bean Taglibn用于定义新bean、访问bean及其属性的标记n在struts-bean.tld中定义了它的标记库描述器Bean Taglib主要功能n创建和复制bean的标记n脚本变量定义标记nbean翻译标记n消息国际化标记逻辑标记nStruts逻辑标签库包含的标记能够有条件地产生输出文本n在对象集合中循环从而重复地产生输出文本,以及应用程序流程控制n它也提供了一组在JSP页中处理流程控制的标记n逻辑标记封装在文件名为struts-logic.tld的标记包中逻辑标记库的功能n条件逻辑n

10、重复n转发/重定向响应条件逻辑标记n第一类可以比较下列实体与一个常数的大小n第二类在计算标记体之前判断特定的项目是否存在n第三类根据模板匹配的结果检查标记体的内容重复标记n它能够根据特定集合中元素的数目对标记体的内容进行重复的检查n集合的类型njava.util.Iteratornjava.util.Collectionnjava.util.Mapnjava.util.Listn数组转发标记n标记能够将响应转发给重定向到特定的全局ActionForward上nActionForward的类型决定了是使用PageContext转发响应,还是使用sendRedirect将响应进行重定向n此标记只有

11、一个name属性,用来指定全局ActionForward的名称,例如:n重定向标记n标记是一个能够执行HTTP重定向的强大工具。n根据指定的不同属性,它能够通过不同的方式实现重定向。n它还允许开发人员指定重定向URL的查询参数。HTML标记nStruts HTML标记可以大致地分为以下几个功能:n显示表单元素和输入控件n显示错误信息n显示其他HTML元素模板标记nStruts模板标记可以大致地分为以下几个功能:n插入标记n放置标记n获得标记Struts 的使用nStruts 不要用于 Bussiness Logic 的具体实现 Struts 是 Web Framework,Struts 与业务逻辑层应该具有松耦合的关系Struts 的使用n ActionBean 的逻辑分离 将与业务逻辑相关的部分转移至处理业务逻辑的Javabean。在ActionBean中只做相关调用,不进行实际业务逻辑操作。将对业务逻辑的调用进行封装,以便给ActionBean提供统一的接口Struts 的使用n FormBean 与 ValueObject 将与业务相关的数据对象放入ValueObject, 由 FormBean 进行引用。减少FormBean与业务数据的耦合。ValueO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论