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

Struts快速入门(四)

阅读更多

使用ActionForward导航<!----><o:p></o:p>

       ActionForward对象是配置对象。这些配置对象拥有独一无二的标识以允许它们按照有意义的名称如“success”,“failure”等来检索。ActionForward对象封装了向前进的URL路径且被请求处理器用于识别目标视图。ActionForward对象建立自<forward>元素位于struts-config.xml。下面是一个Struts<forward>元素例子,属于<action>元素范围。<o:p></o:p>

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

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

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

<forward name="success" path="/MainMenu.jsp"/><o:p></o:p>

<forward name="failure" path="/CustomerService.jsp"/><o:p></o:p>

</action><o:p></o:p>

       基于执行请求处理器的execute(…)方法的结果,当传递一个值匹配指定于<forward>元素中name属性的值的时候,下一个视图可以在execute(…)方法中被开发者用方便的方法org.apache.struts.action.ActionMapping.findForward(…)选择。ActionMapping.findForward(…)方法既从它的本地范围又从全局范围提供一个ActionForward对象,该对象返回至RequestProcessorRequestDispatcher.forward(…)response.sendRedirect(…)调用下一个视图。当<forward>元素有redirect=false属性或redirect属性不存在的时候,RequestDispatcher.forward(…)被执行;当redirect=“true”是,将调用sendRedirect(…)方法。下例举例说明了redirect属性的用法:<o:p></o:p>

      <forward name="success" path="/Catalog.jsp" redirect="true"/><o:p></o:p>

struts-config.xml<controller>元素还提供另一个特性以控制<forward>元素的的name属性如何被解释。该<controller>元素用于联合<action>元素中input属性,如下所示:<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>

input="profile"><o:p></o:p>

<forward name="profile" path="/CustomerProfile.jsp"/><o:p></o:p>

<forward name="success" path="/MainMenu.jsp"/><o:p></o:p>

</action><o:p></o:p>

<controller><o:p></o:p>

<set-property property="inputForward" value="true"/><o:p></o:p>

</controller><o:p></o:p>

       上述的<action>元素包含一个input属性及一个向前名称;该前进名称与<forward>中的相同。在上述的<controller>配置中,当ActionForm.validate(…)返回一个非空或非nullActionErrors对象,RequestProcessor将选择<forward>元素,其name属性与<action>元素的input属性拥有相同的值;除非用子类取代RequestProcessor,该行为是确认遇到错误的标准行为。对下面的<controller>元素声明,当ActionForm.validate(…)返回一个非空或非nullActionErrors对象,input属性提供一个向前的URL以代替向前发生ActionForward的名称。在inputForward属性不存在时,这是默认的配置。<o:p></o:p>

<controller><o:p></o:p>

<set-property property="inputForward" value="false"/><o:p></o:p>

</controller><o:p></o:p>

       前进指向特定的路径,如果路径中没有”/” 就加上。对于前进或重定向,Struts中的URL在内部被RequestProcessor用下面的结构建立。<o:p></o:p>

如果redirect=true, URL建立如/contextPath/path因为HttpServletResponse.sendRedirect(…)中解释URL采用”/”开头相对于servlet容器根目录。<o:p></o:p>

如果redirect=false, URI建立如/path因为ServletContext.getRequestDisptacher(…)采用虚拟目录相关URL<o:p></o:p>

<o:p> </o:p>

捕获表单数据<o:p></o:p>

       JSP规范提供了一个标准方法以在请求时从JavaBean提取和保存表单数据,使用<jsp:useBean><jsp:setProperty>。然而这种方法导致了在表示层和JavaBeans间产生很强的耦合;此外HTML文档创作者不得不明白这种组件并且知道它们在页面中正确地用法。因为JavaBean可以被<jsp:useBean>标签或被另一个服务器组件建立和放置在指定的范围,那样可能在不同的组件共享JavaBean中产生bean的生命周期管理问题。Struts提供一个机制以提取,保存和验证表单数据;同时它克服了<jsp:useBean><jsp:setProperty>的缺点。下面是一对新的<action><form-bean>元素。<o:p></o:p>

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

 <action path="/editCustomerProfile" type="packageName.EditCustomerProfileAction" name="customerProfileForm" scope="request"/> <o:p></o:p>

       上述例子映射一个packageName.customerProfileForm类型JavaBeanname = customerProfileForm(唯一标识)到一个<action>元素的name = customerProfileForm;请求处理器被提交请求的路径/editCustomerProfile唯一标识。该表单建立和使用的语义用下面的静态模型举例说明:

 

   图略

<!----><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><o:p></o:p>

 

首先,我们将浏览这些表单处理语义直到使用简单JavaBeans对象。这些对象作为ActionForm对象被实现。我们随后将讨论使用DynaActionForm对象进行表单处理,可以在请求时支持属性的动态集合。

 

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

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

<o:p></o:p>

分享到:
评论

相关推荐

    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)设计模式的,它将业务...

    struts快速入门的最好教程

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

    Struts1入门实例(完整代码)

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

    java Struts2快速入门教程pdf

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

    struts2快速入门

    struts2快速入门,对于框架的学习很有帮助,大家可以参考下。

    Struts2入门V3.0.pdf

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

    struts2.0入门案例

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

    Struts快速入门

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

    struts入门最简单例子

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

Global site tag (gtag.js) - Google Analytics