Struts笔记(四)ActionMapping路由

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。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值