4. ActionMapping路由
ActionMapping (org.apache.struts.action.ActionMapping) 描述了框架是如何处
理每一个离散的业务操作 (或 action)的。 在Struts中,每个ActionMapping 通过其path 属性和一个特定的URI 相关。当一个请求到来, ActionServlet 使用 path 属性来选择对应的ActionMapping。一组ActionMapping 对象被放在一个ActionMappings 集合之中(org.apache.struts.action.ActionMappings)。
ActionMapping工作起来就像是ActionServlet的一个路由联络官。取决于mapping 如何被填写设置,请求可能被传递到任何地方。ActionMapping表达了Struts 应用的核心设计。如果你想知道一个 Struts 应用是如何工作的,可以从ActionMapping开始着手。如果你想知道如何写一个新的Struts 应用,也请从ActionMapping开始。Mapping处于每个Struts 应用的绝对核心。
4.1. ActionMapping 目录
ActionMapping将对Struts 应用中有效的业务逻辑进行分类。当一个请求到达时,
ActionServlet在ActionMapping目录中查找对应条目,并调用相应的Action Bean。
ActionServlet 使用ActionMapping bean 来决定接下来该做什么。它也许需要将控制转发到其它资源。或者也许它需要组装并且校验一个 ActionForm bean。某些时候,它也许会将控制传递给一个Action 对象,并且当Action 返回时,它可能会查找和这个mapping相关的ActionForward。
4.2. ActionMapping 属性
path: 来自于请求的URI 路径,用来选择该mapping。
forward: 通过一个forward 服务这个请求的上下文相关的资源路径。实际上forward,include,type 属性中的一个,必须指定。
或include:通过一个include 服务这个请求的上下文相关的资源路径。
或type: 可选,表明一个org.apache.struts.action.ActionMapping的子类名称,在实例化这个mapping 时使用。
classname: 该Mapping 使用的Action 类的全限定名称
name: 与该Mapping 相关的form bean 的名称,如果有的话。这不是类名称。而是在form bean 配置中使用的逻辑名称。
roles: 可以访问该mapping 的安全角色列表。
scope: 范围(请求或会话)识别符,如果有的话。与该mapping 相关的formaBean 在其中创建。
validate: 如果与该mapping 相关的 form bean 的 validate 方法 (如果有)需要被调用,则设置为true。
input: 输入表单的上下文相关的路径,如果校验错误,控制应该被返回到该表单。可以是任何HTML,JSP,VM,或者另一个ActionMapping。
parameter: 通用配置参数,用来向ActionMapping 选定的Action 传递额外的参数信息。
attribute: 果它不是 bean 的特定名称的话,则表示form bean 在要在其中被访问的请求-范围或者会话-范围的属性名称。
prefix: 如果有的话,用来将请求参数名称匹配到 form bean 属性名称的前缀。
suffix: 如果有的话,在组装Actionform bean 属性时,用来匹配请求参数名称的后缀。
unknown:如果该 mapping 要被配置为应用的缺省mapping(处理那些没有被其它mapping 处理的请求),可设置为true。在一个应用中仅有一个mapping 可定义为缺省的 unknown mapping。
forwards(s): 该mapping 使用的ActionForward,如果有的话。
exception(s):该mapping 使用的ExceptionHandler 如果有的话。
4.3. 自定义ActionMapping配置
4.3.1. web.xml配置
<init-param>
<param-name>mapping</param-name>
<param-value>app.MyActionMapping</param-value>
</init-param>
4.3.2. struts-config.xml配置<action-mappings>
<action-mappings type="app.MyActionMapping">
4.3.3. struts-config.xml配置classname
<action classname="app.MyActionMapping">
4.4. 缺省 ActionMapping 类
org.apache.struts.action.SessionActionMapping 缺省时,scope 属性session
org.apache.struts.action.RequestActionMapping 缺省时,scope 属性Request
它们可以选作为缺省设置,或者用作你的子类的基类。
框架的缺省设置为SessionActionMapping,所以scope 属性的缺省设置为session。
分享到:
相关推荐
在本套“达内,tarena,struts笔记,strutsPPT课件,达内struts笔记”资源中,我们重点关注的是Struts 1.x版本,这是一个较旧但仍然广泛使用的版本,尤其对于初学者来说,它是理解MVC设计模式和Web开发基础的良好...
本笔记主要涵盖了Struts2的基础知识,包括但不限于配置、Action、拦截器、结果类型以及异常处理等内容。 1. **Struts2框架简介** Struts2是Apache软件基金会的一个开源项目,它是Struts1的升级版,弥补了Struts1在...
林信良的Struts笔记无疑为我们提供了一种深入理解Struts框架的途径,尤其对于初学者来说,是一份非常有价值的参考资料。 在Struts框架中,主要包含了以下几个核心组件: 1. **Action类**:Action是业务逻辑处理的...
【Struts笔记】 Struts是Apache软件基金会的Jakarta项目中的一个MVC(Model-View-Controller)框架,它用于构建基于Java EE的Web应用程序。Struts通过提供一组设计模式和组件,简化了开发过程,提高了代码的可维护...
这篇笔记主要围绕Struts框架的核心概念、工作原理以及实际应用进行深入探讨。 一、Struts框架概述 Struts提供了一种组织应用程序结构的方式,它将业务逻辑、控制流程和表现层分离,使得开发人员可以更专注于业务...
3. ActionMapping:映射Action与URL的关系,决定请求如何路由到特定的Action。 4. ValueStack:存储Action的属性值,方便在视图层取值展示。 5. Interceptors(拦截器):可插拔的处理链,可以实现事务管理、日志、...
这个版本的学习笔记主要集中在 Struts 框架的核心概念、架构和实际应用上。在深入学习 Struts 1.3.8 时,我们需要了解以下几个关键知识点: 1. **MVC设计模式**:Struts 是 Model-View-Controller (MVC) 设计模式的...
#### 四、Struts的核心组件解析 - **ActionServlet**: Struts 的核心组件之一,负责拦截用户请求,并根据配置文件中的映射关系调用对应的 Action 类。 - **Action Class**: 具体的业务处理类,继承自 `Action` 基类...
框架通过配置文件(struts-config.xml)来定义Action类和相应的映射,这使得请求可以被正确路由到对应的业务逻辑。 2. **Model(模型)** 模型组件负责处理业务逻辑,通常由JavaBeans或Entity Beans组成。它们与...
3. **ActionMapping**:ActionMapping定义了请求URL与Action类之间的映射关系,它指示了Struts框架如何将请求路由到正确的Action。 4. **ActionForward**:ActionForward用来指定Action执行后页面的跳转方向,例如...
本学习笔记将深入探讨Struts2的核心概念、架构以及实际应用。 一、Struts2框架概述 1. 架构:Struts2基于Model-View-Controller(MVC)设计模式,将业务逻辑、数据处理和用户界面分离,提高了代码的可读性和可维护...
Struts2自学笔记 Struts2是Java Web开发中的一款广泛应用的MVC框架,它基于Model-View-Controller设计模式,旨在简化企业级应用的开发流程。本自学笔记将深入探讨Struts2的核心概念、主要功能及其实现原理。 1. **...
四、Struts工作流程 1. 用户发送HTTP请求到服务器。 2. ActionServlet捕获请求,根据struts-config.xml中的配置,找到对应的ActionMapping。 3. ActionServlet创建ActionForm对象,填充请求参数。 4. 将ActionForm...
"Struts学习笔记"显然是一个针对Struts框架深入学习的资料集合,旨在帮助初学者从基础开始,逐步掌握Struts的核心概念和实践技巧。 在学习Struts的过程中,有几个关键知识点是必须理解的: 1. **MVC模式**:MVC是...
Struts1教程之ActionMapping Struts1教程之ActionMapping是一个重要的概念,在Struts1框架中扮演着关键角色。ActionMapping是Struts1框架中的一个核心组件,它负责处理用户请求并将其映射到对应的Action类中。今天...
本篇学习笔记将深入探讨Struts的核心概念、工作原理以及如何在实际项目中应用Struts来构建高效、可维护的Web应用程序。 一、Struts框架概述 Struts作为经典的MVC框架,它为Java开发者提供了一种组织应用程序逻辑的...
"使用Struts + Spring + Hibernate完成用户登陆笔记" 在本文中,我们将结合Struts、Spring和Hibernate三种技术来完成用户登陆系统的实现。下面是相关的知识点总结: 一、Struts框架简介 * Struts是一个基于MVC...