`
冰云
  • 浏览: 142134 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

Struts快速入门(三)

阅读更多

利用ActionMapping的命令模式<!----><o:p></o:p>

       Struts提供一个公开的基于XML语句的方法来说明请求URIservlet路径与适当的请求处理器之间的映射。这个实现与命令模式[Gof]很相似。以下片断摘自struts-config.xml文件,下列声明用于建立ActionMapping配置对象,它是<action>元素的运行时表现。<o:p></o:p>

<action-mappings><o:p></o:p>

<action path="/editCustomerProfile"<o:p></o:p>

type="packageName.EditCustomerProfileAction"<o:p></o:p>

name="customerProfileForm"<o:p></o:p>

scope="request"/><o:p></o:p>

</action-mappings><o:p></o:p>

       以下简要说明上述声明中用到的属性。<o:p></o:p>

       pathHTTP请求中虚拟目录的相对路径,用于识别这个动作映射。<o:p></o:p>

       type类名,将用于在处理这个请求的时候建立一个请求处理器实例。<o:p></o:p>

       nameJavaBean的逻辑名称,也叫做表单bean,将用于保存表单数据。表单bean将用这个名称保存在指定的范围(scope)中。<o:p></o:p>

       scope保存bean时用请求或会话范围。<o:p></o:p>

       上例中Path属性映射到HTML文件中<form>元素的action属性。在上面范例中避免了硬代码映射到代码内部而且可以方便的看到HTML表单中的servlet路径如何映射到请求处理器的实例。另外,应用系统行为和导航语义可以方便的通过修改动作映射来完成。请求处理器是Struts提供的Action类的子类。<o:p></o:p>

       对于HTML<form>标签,使用自定义的org.apache.struts.taglib.html.FormTagaction属性动态生成动态URL可以保护HTML文档避免修改虚拟目录或<url-pattern>时的大量变动。对于*.do模式的URL,下面的自定义FormTag  <html:form action="/editCustomerProfile?customerType=preferred"> 将使用action属性包含的如下服务器相关URL动态生成一个HTML <form>标签:<form action="/contextPath/editCustomerProfile.do?customerType=preferred"/><o:p></o:p>

使用name属性,行为映射可以声明一个特定的JavaBean ,其特性将保存来自HTTP请求的参数,该JavaBeanActionFrom类的子类。行为映射声明中的name属性是在特定范围内使用哪个ActionForm类的实例保存的唯一标示。ActionForm子类使用<form-beans>标签声明于struts-config.xml文件中,如下:<o:p></o:p>

<form-bean name="customerProfileForm" type="packageName.customerProfileForm"/><o:p></o:p>

参阅“获取表单数据”章节以得到关于<form-beans>元素和ActionForm类的更多信息。<o:p></o:p>

<o:p> </o:p>

模型与请求处理器的相互作用<o:p></o:p>

       Action的一个子类是用于作为提交的请求和模型之间的适配器。Action子类,也叫做请求处理器,是为每个请求特别建立的。一个动作最初被RequestProcessor解释,然后轮流实例化一个相应的请求处理器。这个Action类的对象为每个请求特别建立,已经在前面章节中的发送者阐述。请求处理器实现了命令模式[Gof]。一个终端请求在请求URL中封装了欲执行的行为即servlet路径,该路经信息随后被发送者(RequestProcessor)提取以建立一个相应的请求处理器实例。命令模式消除了用户界面(UI)对请求处理器的影响。<o:p></o:p>

       基本的Action类提供访问架构相关资源的常用函数以及保存使用其子类的execute(…)方法而产生的错误的方法。该错误随即通过采用定制的org.apache.struts.taglib.html.ErrorsTag,被获取并显示到HTML表单。请求处理器的execute(…)方法应该包含处理请求参数和相关ActionForm的控制流程,它应该封装模型相关语义,并且应该在模型操作结果的基础上提供下一个视图。请求处理器在第一次建立后就被RequestProcessor捕获,随即被设为对其他的提交请求可用;同样的,请求处理器必须不含有用户特定的状态信息;请求处理器也必须同步化访问需要串行访问的资源。对于一个分布式应用,动作类包括与EJB组件中的事务逻辑相关联的控制逻辑且一般采用Business Delegate[Core]对象来实现该目的。事务委托保护请求处理器免于处理访问分布式组件的复杂度。因为访问服务器端组件的逻辑被嵌入到事务委托中,事务委托设计模式促进了请求处理器与服务器端组件的松散耦合。请求处理器由表示层工作的开发者编写,然而事务委托常常由负责建立事务层服务的开发者编写。对于小型非分布式应用,动作类或许包含事务逻辑。当分布式处理不是必需的且事务逻辑被嵌入在请求处理器中时,Data Access Object [Core]可以用于抽象潜在的数据访问实现,它为请求处理器与数据访问层提供了松散的耦合,从而保护表示层避免在整合层中改变实现。请求处理器基本的Action类提供部分方便的方法,请查阅API文档位于:http://jakarta.apache.org/struts/api/index.html<o:p></o:p>

 

(待续...)

 

<o:p>冰云翻译,转载请告知。</o:p>

<o:p>icecloud@sina.com</o:p>



分享到:
评论

相关推荐

    struts快速入门的最好教程

    Struts2框架简介 Struts2历史 Struts2与MVC Struts2体系介绍 Struts2体系架构 Struts2工作流程 Struts2基本知识点 Struts2标签库简介 Struts2拦截器 默认配置文件struts-default.xml概要说明 Struts2核心配置文件...

    struts快速入门 视频

    在本"Struts快速入门"视频中,我们将探讨如何利用Struts来实现一个基础的登录功能,这是一个常见且重要的任务,对于理解Struts的工作原理至关重要。 首先,我们需要了解Struts的核心概念。Struts是基于Model-View-...

    struts快速入门源码

    本资源"struts快速入门源码"旨在帮助初学者快速掌握Struts框架的核心概念和基本用法,确保在学习过程中不会遇到任何报错,是学习Struts的优质实践案例。 Struts1.2是该框架的一个较早版本,虽然现在已经有了更新的...

    struts2入门demo

    Struts2是一个强大的Java EE应用程序框架,用于构建和维护可扩展、模块化且易于管理的Web...对于想要深入学习Struts2的人来说,这是一个很好的起点,可以帮助他们快速掌握基础,为进一步的学习和实践打下坚实的基础。

    struts1.3 入门级例子

    总之,这个入门级例子涵盖了Struts1.3的基础架构和主要组件的使用,对初学者来说是一个很好的起点,可以让他们快速理解Web应用开发的基本流程和思想。通过实践这个例子,可以为学习更复杂的Struts1.3应用或其他Java ...

    Struts2入门案例 实现简单的Struts2入门jar包.rar

    6. ** strut2入门案例**:这个入门案例可能是创建一个简单的“Hello, World”程序,演示如何配置Struts2框架,创建Action类,编写对应的JSP页面,并在web.xml中进行必要的初始化设置。这个例子会帮助初学者快速理解...

    struts2入门级的例子

    通过实践这些例子,你可以快速掌握Struts2的使用方法,从而提高你的Web开发技能。 1. **配置环境**: 首先,你需要设置Java开发环境和Apache Tomcat服务器,并在项目中引入Struts2的核心库。这通常涉及下载Struts2的...

    Struts2入门demo

    这个"Struts2入门demo"旨在为初学者提供一个快速理解并实践Struts2框架的起点。以下是对Struts2核心概念和相关知识点的详细说明: 1. **MVC模式**:Struts2是基于Model-View-Controller(MVC)设计模式的,它将业务...

    Struts1入门实例(完整代码)

    总之,Struts1入门实例是一个很好的起点,它让你能快速搭建一个简单的Web应用并了解其运作机制。通过实践这个实例,你可以深入理解MVC模式,掌握Struts1框架的基本使用,为进一步的Java Web开发打下坚实基础。

    java Struts2快速入门教程pdf

    本教程将带你深入理解Struts2的基础概念、核心组件以及如何快速入门。 一、Struts2框架概述 Struts2是Struts1的升级版,它吸收了WebWork框架的优点,极大地提高了开发效率和代码的可维护性。Struts2基于拦截器模型...

    Struts2入门V3.0.pdf

    Struts2是一个基于MVC(Model-View-Controller)设计模式的Java web应用程序框架,它在Struts1的基础上进行了很多改进和增强,提供了..."Struts2入门V3.0.pdf"这份文档将详细地介绍这些内容,是初学者入门的良好教程。

    Struts快速入门

    在本"Struts快速入门"教程中,我们将深入理解Struts的基本概念、核心组件以及如何通过实例来实现一个简单的Hello World应用程序。 首先,Struts框架的核心组件包括Action、ActionForm、Dispatcher Servlet(也称为...

    struts2.0入门案例

    这个入门案例旨在帮助初学者快速理解Struts2.0的基本架构和配置。我们将创建一个简单的用户登录应用,包含一个登录表单和一个处理登录请求的Action。 三、环境配置 1. 安装JDK:确保你的开发环境已经安装了Java ...

    struts入门最简单例子

    这个"struts入门最简单例子"旨在帮助初学者快速理解并掌握Struts2的基本用法。Struts2框架提供了丰富的功能,如动作映射、结果类型、拦截器、动态方法调用等,使得开发者能够构建结构清晰、可维护性强的Web应用程序...

Global site tag (gtag.js) - Google Analytics