`
Benjamin8888
  • 浏览: 2069 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Struts2 Guides 笔记:Action Configuration

阅读更多
1、总述
     Action配置是Struts2的主要配置项,决定着Struts2如何处理请求,由谁(Action)来处理请求,以及最后Result的分配。

1、1 Action Mappings
    Action Mappings中可以配置一系列不同类型(type)的result,一系列异常处理器,以及一个拦截器栈(interceptor stack)。其中只有name属性是必须提供的,而其他的属性则可以在package元素中提供。

1、2 Action Names
    在Web应用中,Action的name属性是与来自客户端浏览器请求路径的一部分对应的,Struts2框架会自动将主机名(host)、应用名(application,即web project中的context root)以及扩展名舍弃,剩下中间的部分就是Action name要匹配的,举个例子:
http://localhost:8080/user_management/addUser.action将去Struts2配置文件struts.xml中寻找名字为addUser的action。
    
    Action的name值尽量不要使用“.”和“-”,使用的时候要小心,推荐使用驼峰风格的addUser或者使用下划线风格的add_user。

1、3 Action Methods
    Action的默认执行入口是在接口Action中定义的,即execute方法。
public interface Action {
    public String execute() throws Exception;
}


    然而在很多情况下,我们希望Action拥有更多的入口点(处理方法),举简单例子,如一个UserAction类,可能有createUser, getUser, updateUser, deleteUser, listUsers等方法,这时struts2为我们提供了method属性来动态指定Action类的入口点。

<action name="createUser" method="createUser" class="user.UserAction">
    <result>...</result>
</action>


1、4 Wildcard Methods
    有的情况下,多个action mappings可能存在一些公有特征(或者叫做公共模式common pattern),我们就可以使用struts2提供的通配符特性。例如,你拥有一个UserAction的类,代码如下:
public class UserAction() {
    ...
    public String createUser(){...}
    public String getUser(){...}
    public String updateUser(){...}
    public String deleteUser(){...}
}


    通常情况下,在struts.xml中,我们可能会定义4个action,name的值分别是:createUser, getUser, updateUser, deleteUser,对应的method值分别同样是:createUser, getUser, updateUser, deleteUser。

    使用通配符(Wildcard)可以避免上面多余的配置,使用一个action mapping即可,具体如下:
<action name="*User" class="user.UserAction" method="{1}User">
    <result>...</result>
</action>

分享到:
评论

相关推荐

    Struts1.3 备忘笔记

    Struts 1.3 备忘笔记 【资源特点】 1、以项目形式组织,包含所有的源代码 2、内含详细的注释说明 3、知识点较全面 【内容目录】 01 Struts_01HandworkApply : 手工配置Struct应用程序,演示用户提交数据后服务器的...

    struts1和struts2区别

    - **Struts2**:Action类可以实现Action接口或者直接使用ActionSupport基类,也可以是任何具有`execute`方法的普通Java对象(POJO),这增加了代码的可定制性和可扩展性。 2. **线程模式**: - **Struts1**:...

    Struts Design and Programming: A Tutorial

    Struts1的核心组件包括ActionServlet、ActionForm、Action、ActionForward和配置文件(struts-config.xml)。ActionServlet作为MVC中的控制器,管理HTTP请求和应用之间的交互。ActionForm用于封装表单数据,Action类...

    struts2学习笔记(完美总结)——转自OPEN经验库

    本文将深入探讨Struts2的核心概念,包括Action、Result、配置文件、OGNL与ValueStack、Tags以及项目中的关键实践。 **一、Action** Action是Struts2中处理业务逻辑的核心组件,它是实现了`...

    struts2学习笔记总结

    本笔记将全面总结Struts2的核心概念、主要功能以及实际开发中的应用。 一、Struts2概述 Struts2是Apache软件基金会下的一个开源项目,它继承了Struts1的优点并解决了其存在的问题,如性能和灵活性。Struts2的核心是...

    struts2 学习重点笔记

    ### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...

    struts2学习笔记

    1. **属性驱动**:Action类中的字段直接对应请求参数,Struts2自动将请求参数值填充到Action字段。 2. **模型驱动**:使用一个公共对象作为模型,Action类持有这个模型的引用,Struts2将请求参数填充到模型对象中,...

    struts1和struts2的区别

    - **Struts2**: Struts2中的Action更像是工厂模式下的产品,每个Action实例都是线程安全的。Struts2提供了ActionSupport基类来简化Action的实现。Action本身可以是任何实现了特定接口的Java对象,甚至是普通的POJO。...

    Struts2学习笔记

    根据给定的文件信息,以下是对Struts2学习笔记中涉及的关键知识点的详细解析: ### Struts2框架概览 #### MVC模式的理解与演进 Struts2是基于MVC(Model-View-Controller)模式设计的一种Java Web开发框架。在MVC...

    一个struts2的例子:彻底解决STRUTS2 错误There is no Action mapped for namespace / and action name login

    前几天在网上下载一个struts2的helloword的例子,那个作者也真够缺德的,搞个错误的程序,害得我查了一天的程序错误。 最后发现竟然是struts.xml被写成啦sturts.xml。 碰见这样的问题先鄙视下提供例子的作者, 再...

    张龙圣思园struts2学习笔记word

    笔记中可能详细讲解了Struts2的配置文件,如struts.xml,它是整个应用的配置中心,定义了Action的映射、结果类型、拦截器栈等。在Action配置中,我们可以指定Action类、方法以及对应的URL路径,实现请求与业务的关联...

    struts1与struct2的不同

    - **Struts2**:Action类可以实现`Action`接口,也可以实现其他接口以获得定制服务。它提供了`ActionSupport`基类,但Action接口并非强制要求。任何具有`execute`方法的POJO(Plain Old Java Object)都可作为...

    Struts2框架笔记

    Struts2的核心组件包括Action、Interceptor、Result等。 #### Struts2入门案例 入门案例通常涉及到简单的请求处理流程,从创建项目结构到配置web.xml文件,并定义struts.xml中的业务逻辑。以下是对入门案例中几个...

    struts1与struts2的区别

    - **Struts2**:Action类实现了Action接口,可以选择性地实现其他接口。`ActionSupport`是一个基类,提供了默认的实现。Struts2允许任何包含`execute`方法的普通Java对象(POJO)作为Action。 2. **动作模型...

    Struts1和Struts2区别

    - **Struts2**:通过OGNL表达式可以实现动态方法调用,无需提前硬编码Action方法,增强了代码的可维护性。 5. 错误和异常处理: - **Struts1**:错误和异常处理相对较弱,通常需要在配置文件中手动指定错误页面。...

    Struts1与Struts2本质区别

    ### Struts1与Struts2本质区别 #### 1. 在Action实现类方面的对比 - **Struts 1**:要求Action类必须继承一个抽象基类`Action`,这种设计方式意味着开发者必须按照预设的结构来编写代码,灵活性较低。这种通过抽象...

    struts2学习笔记.doc

    ### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...

    struts2课程笔记

    本课程笔记主要涵盖了Struts2的基础概念、核心功能及其工作流程。 首先,Struts2的处理流程是通过一系列的组件协作完成的,包括Filter Dispatcher(过滤器调度器)、Action、Interceptor(拦截器)和Result。当用户...

Global site tag (gtag.js) - Google Analytics