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

下载本文档

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

文档简介

Struts,MVC的一种开放源代码实现

李连鹏

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

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

ActionServlet

控制器

ActionClass 包含事务逻辑

ActionForm

显示模块数据struts框架的组成部分ActionMapping

帮助控制器将请求映射到操作

ActionForward

用来指示操作转移的对象

ActionError

用来存储和回收错误

Struts标记库 Struts框架的优势良好的架构和设计

可重用,模块化,扩展性好Opensourcestruts-config.xmlStruts-config.xml集中了所有页面的导航定义。对于大型的WEB项目,通过此配置文件即可迅速把握其脉络,这不管是对于前期的开发,还是后期的维护或升级都是大有裨益的。掌握Struts-config.xml是掌握Struts的关键所在。struts-config.xmlStruts-config.xml中包括八个子元素<global-exceptions><form-beans><global-forwords><action-mappings><message-resourse><data-sourses><plug-in><controller>struts-config.xml(FormBean部分)<form-beanstype="org.apache.struts.action.ActionForm"><form-beanname="logonForm"type="app.LogonForm"/></form-beans>struts-config.xml(全局转发部分)<global-forwardstype="org.apache.struts.action.ActionForward"><forwardname="logon"path="/logon.do"/></global-forwards>struts-config.xml(action部分)<action-mappingstype="org.apache.struts.action.ActionMapping"><action

name="logonForm"path="/LogonSubmit"

type=“app.LogonAction

><forwardname="success"path="/pages/Welcome.jsp"/><forwardname="failure"path="/pages/Logon.jsp"/></action><actionparameter="/pages/Logon.jsp"path="/Logon"type="org.apache.struts.actions.ForwardAction"/></action-mappings>struts-config.xmlActionClassesAction类定义在org.apache.struts.action,对于每一个应用中的功能,必须要扩展这个action类,它是业务逻辑的一个包装。Action类的用途是将HttpServletRequest

转换为业务逻辑。Action中的publicActionForwardexecute(ActionMappingmapping,

ActionFormform,

ServletRequestrequest,

ServletResponseresponse)throwsIOException,ServletExceptionActionFormActionForm

维护Web应用程序的会话状态。ActionForm

是一个抽象类,必须为每个输入表单模型创建该类的子类。ActionForm的使用假定有一个由HTML表单设置的LogonForm。Struts

框架将执行以下操作:检查LogonForm是否存在;如果不存在,它将创建该类的一个实例。Struts将使用HttpServletRequest

中相应的域设置LogonForm的状态。ActionForm的使用Struts框架在将LogonForm传递给LogonAction

之前将更新它的状态。struts-config.xml

文件控制HTML表单请求与ActionForm

之间的映射关系。<html:formaction="/LogonSubmit.do">可将多个请求映射到LogonForm。ActionServletActionServlet

是struts框架MVC实现的controller部分,它是这一框架的核心。

ActionServlet

创建并使用Action、ActionForm

和ActionForward。ActionServlet的基本功能截获用户的Http请求

把这个请求映射到相应的Action类。

创建一个ActionFormbean实例,将form请求放入formbean的实例中ActionServlet的基本功能调用Action实例的execute()方法将ActioFormbean,ActionMapping对象,request和response对象传给Action的execute()方法execute返回一个ActionForword对象,根据方法执行情况转到相应的jsp页面.MVC结构的实现Struts标记库Struts框架包括自定义标签库,它可以用

在很多方面。尽管这些库并不属于MVC框架,但使用它们可以在页面完全不出现java脚本的情况下实现所有的功能。Struts标记库struts-beantaglib:包含在访问bean和bean属性时使用的tag,也包含一些消息显示的tag。struts-htmltaglib:包含用来生成动态HTML用户界面和窗体的tag。struts-logictaglib:包含的tag用来管理根据条件生成输出文本,和其它一些用来控制的信息。struts-templatetaglib包含的tag用来定义模板机制。BeanTaglib用于定义新bean、访问bean及其属性的标记在struts-bean.tld中定义了它的标记库描述器BeanTaglib主要功能创建和复制bean的标记脚本变量定义标记bean翻译标记消息国际化标记逻辑标记Struts逻辑标签库包含的标记能够有条件地产生输出文本在对象集合中循环从而重复地产生输出文本,以及应用程序流程控制它也提供了一组在JSP页中处理流程控制的标记逻辑标记封装在文件名为struts-logic.tld的标记包中逻辑标记库的功能条件逻辑重复转发/重定向响应条件逻辑标记第一类可以比较下列实体与一个常数的大小第二类在计算标记体之前判断特定的项目是否存在第三类根据模板匹配的结果检查标记体的内容重复标记<logic:iterate>它能够根据特定集合中元素的数目对标记体的内容进行重复的检查集合的类型java.util.Iteratorjava.util.Collectionjava.util.Mapjava.util.List数组转发标记<logic:forward>标记能够将响应转发给重定向到特定的全局ActionForward上ActionForward的类型决定了是使用PageContext转发响应,还是使用sendRedirect将响应进行重定向此标记只有一个"name"属性,用来指定全局ActionForward的名称,例如:<logic:forwardname="myGlobalForward"/>重定向标记<logic:redirect>标记是一个能够执行HTTP重定向的强大工具。根据指定的不同属性,它能够通过不同的方式实现重定向。它还允许开发人员指定重定向URL的查询参数。HTML标记StrutsHTML标记可以大致地分为以下几个功能:显示表单元素和输入控件显示错误信息显示其他HTML元素模板标记Struts模板标记可以大致地分为以下几个功能:插入标记<template:insert>放置标记<template:put>获得标记<template:get>Struts的使用Struts不要用于BussinessLogic的具体实现Struts是WebFramework,Struts

与业务逻辑层应该具有松耦合的关系Struts的使用

ActionBean

的逻辑分离

将与业务逻辑相关的部分转移至处理业务逻辑的Javabean。在ActionBean中只做相关调用,不进行实际业务逻辑操作。将对业务逻辑的调用进行封装,以便给ActionBean提供统一的接口Struts的使用

FormBean

与ValueObject

将与业务相关的数据对象放入ValueObject,由FormBean

进行引用。

温馨提示

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

评论

0/150

提交评论