`
starbhhc
  • 浏览: 658297 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

struts2中的action

阅读更多
action映射是struts2框架的基本工作单元,通常,action配置将一个标识符映射到一个业务逻辑的class,当一个请求同action的名字匹配时,框架通过这种映射决定怎么处理请求。一个通常的action如下
<action name="Logon" class="tutorial.Logon">
     <result >welcome.jsp</result> 
     <result name="input">/Logon.jsp</result>
</action>   
    注意,如果一个action的name中需要有/例如 <action name="admin/home" class="tutorial.Admin"/> ,需要在配置文件中struts.xml添加如下<constant name="struts.enable.SlashesInActionNames" value="true"/> 同时,action的name中最好别使用.和/   
    通常由一个表单连接到一个action用来处理表单提交的数据。
        <s:form action="Login">  
          <s:textfield label="UserName" name="name"/>  
          <s:submit/>
       </s:form>  
    默认的,action执行时会执行actioin的execute()方法。但是,我们可以手动的指定action的执行方法。
<action name="delete" class="example.CrudAction" method="delete">将会在指派到action时执行action的delete()方法。如果action中没有execute()方法并且也没指定别的方法,则框架会抛出一个异常。

      通配符:很多时候,我们需要不同的action name指向同一个class并执行与该action name相关的方法,
<action name="*Crud" class="example.Crud" method="{1}"> 其中*就是通配符,该action可以匹配任何形如*Crud.action的请求,同时执行该action的*方法。例如一个请求如deleteCrud.action,则会执行该actiond的delete()方法。*可以在name的任意位置如Crud_*。当我们需要为这种通配符方式的action使用校验框架或转换框架时时,可以这样 Crud_input-validation.xml Crud_delete-conversion.xml    动态方法调用:我们可以在填写表单的action时使用例如Login!login.action动态的指派调用Login的login方法。不过,还是推荐使用通配符的方式进行动态匹配。因为使用通配符方式可以为不同的请求单独的建立检验文件等
    如果一个action的class属性未指定,则默认将com.opensymphony.xwork2.ActionSupport 作为class属性
    <action name="Hello">   
         //....
   </action>     
   ActionSupport类有一个execute()方法返回SUCCESS和一个input()方法返回INPUT,我们可以通过在packaeg里写上<default-class-ref name=”default.class”>指定我们自定义的默认类

    默认action:有时候请求的action没有找到,服务器就会返回404错误,我们可以指定一个默认action,当所有其他的action都没匹配上时就会执行那个默认的action。方法如下
    <package name="Hello" extends="action-default"> 
         <default-action-ref name="UnderConstruction">  
         <action name="UnderConstruction">                 
             <result>/UnderConstruction.jsp</result>
         </action>  
          ...
   </package>   
   我们可以在不同的package中定义不同的默认action,但是一个命名空间只能指定一个默认action

    一个好习惯就是永远不要从一个页面直接链接到另一个页面,而是通过action链接到别的页面。我们可以通过通配符的方式实现
    <action name="*"> 
        <result>/{1}.jsp</result>
    </action>  
    关于通配符的使用*代表一或多个字符除了/
**代表一或多个字符包括/
    若想在在action name中使用特殊字符例如*而不是用*来表示匹配可以用 \ 来转义。例如\*name就代表名字为*name的action

分享到:
评论

相关推荐

    Struts2中Action接收参数的方法

    Struts2 中 Action 接收参数的方法 Struts2 框架中,Action 组件可以通过多种方式接收参数,这些方式包括使用 Action 的属性、使用 DomainModel 和使用 ModelDriven。下面将详细介绍这些方法: 使用 Action 的属性...

    struts2 中action的使用

    在Struts2中,Action类是核心组件,它扮演着控制器的角色,负责处理用户请求并驱动模型。以下是对"struts2中action的使用"的详细解释。 1. **Action类**:Action类是Struts2框架中的核心组件,它继承自`...

    struts2 result转向到action

    在 Struts2 中使用 `redirect-action` 来实现 Action 之间的跳转是一种常见的做法,特别是在需要按顺序执行多个 Action 的业务场景中。通过这种方式,不仅可以保持应用程序的良好结构,还能有效地组织业务流程。同时...

    详解Struts2中Action访问Servlet API的几种方法

    详解Struts2中Action访问Servlet API的几种方法 在通常的web开发中Request和Response对象比较常见,但在Struts2框架中由于Action能与JSP页面进行数据交互,所以通常都不会用到这两个对象。如果想在Struts2程序中用到...

    Struts 2实战 struts2 in Action

    - **定义**:Action类是Struts 2中的核心组件之一,它负责处理用户的请求并将数据传递给视图层。 - **特点**:Action类可以使用注解或XML配置文件进行配置,这为开发人员提供了极大的灵活性。通过实现`Action`接口...

    Struts2 in action(struts2实战)

    - **Action**:在Struts2中,Action是业务逻辑的载体,负责处理用户请求并返回结果。每个Action对应一个特定的用户操作。 - **Result**:Action执行完毕后,会返回一个Result,定义了页面跳转或数据呈现的方式。 ...

    Struts2实战(Struts2 In Action中文版)

    6. **国际化与本地化**:学习如何在Struts2中实现多语言支持,提供全球化用户体验。 7. **Tiles布局**:结合Tiles插件,创建复用性强、结构化的页面布局。 8. **异常处理**:理解Struts2的异常处理机制,如何...

    struts2 使用action属性接收中文参数(post提交)

    这篇名为“Struts2 使用action属性接收中文参数(post提交)”的博文可能讲述了如何在Struts2框架中正确处理中文POST请求。在处理中文参数时,主要涉及以下几个关键知识点: 1. **字符编码设置**: - 请求编码:...

    Struts 2实战 Struts 2 in action 的中文版

    根据提供的信息,我们可以推断出这是一本关于Struts 2框架的书籍——《Struts 2实战 Struts 2 in action 的中文版》。本书主要介绍了Struts 2框架的相关概念、工作原理以及实际应用案例等内容。接下来,我们将根据...

    关于struts2中Action名字的大小写问题浅谈

    Struts2 中 Action 名字的大小写问题浅谈 Struts2 框架中 Action 的命名规则是开发者需要注意的问题之一。在日常开发中,开发者可能会遇到各种错误,例如在使用 Struts2 框架编写 Action 类以及在 jsp 中写调用相关...

    Struts2 in action中文版+配套源代码

    1. **Action类**:在Struts2中,Action类是业务逻辑的核心,它接收用户请求,执行相关操作,并返回结果。Action类可以被配置在struts.xml文件中,指定其对应的URL和返回的结果类型。 2. **拦截器(Interceptors)**...

    Struts2 in action 中文版

    在Struts2中,Action充当控制器的角色,它接收并处理请求,然后根据业务逻辑决定返回哪个视图。 ### Struts2的架构组件 Struts2框架的架构主要由以下几个关键组件构成: 1. **Action**:这是Struts2中最核心的...

    struts多个action处理

    1. **Action配置**:在Struts2中,Action是业务逻辑的主要承载者。每个Action通常对应一个或多个结果页面。在`struts.xml`配置文件中,我们需要为每个Action定义一个唯一的`name`,这将成为URL的一部分。例如: ```...

    Struts2--3.Action及相关-1

    Action类在Struts2中扮演着业务逻辑处理者的角色,它负责接收用户的请求,执行相应的业务操作,并返回结果到视图层进行展示。 首先,让我们了解`Struts2_0100_Introduction`,这是对Struts2框架的基础介绍。Struts2...

    Struts2 in action 中文版.pdf

    总的来说,《Struts2 in Action》中文版是Java Web开发者必备的参考书籍之一,它不仅提供了全面的技术解析,还强调了实际开发中的问题解决和性能优化。通过学习这本书,开发者可以提升自己在Struts2框架上的专业技能...

    struts2 in action 源码

    struts2 in action 源码

    struts 2 action 动态调用

    本文档将详细介绍如何在Struts 2中实现Action动态方法调用,并通过实例演示其具体应用。 #### 二、基础知识回顾 在开始深入探讨动态方法调用之前,让我们先回顾一下Struts 2框架的基本概念。 1. **Action**: 在...

    struts2 Action 包 命名空间 servlet API

    在Struts2的工作机制中,Action是核心概念,它是业务逻辑的载体,负责处理用户请求。Action的命名空间在配置文件中定义,用于区分不同功能的Action,避免URL冲突。Action的命名空间与Servlet API相结合,可以帮助...

    struts2 in action 中文版 英文版 源代码 合集

    1. **Action和结果**: Action是Struts2框架中处理用户请求的核心组件,它封装了业务逻辑。结果则定义了Action执行后的跳转目标,可以是另一个Action、JSP页面或者其他资源。 2. **配置文件**: Struts2的配置主要...

Global site tag (gtag.js) - Google Analytics