`

Action配置的各项默认值及名称的搜索顺序

阅读更多

一、Action配置的各项默认值:
1。如果没有为action指定class,默认就是ActionSupport类;
2。如果没有为action指定method属性,则默认执行execute方法;
3。如果没有指定result的name属性,默认值为success。
ActionSupport类中的execute方法的源码如下所示:

 public String execute()   throws Exception
  {
   return "success";
  }

 (1) .我们在jsp页面之间写链接总会是.../xxx.jsp,而如果我们想屏蔽掉具体的jsp,只需要所jsp页面配置成一个ForwardAction即可实现。示例如下:在根目录下有一个xxx.jsp,我们strtus.xml中作如下配置:

<package name="def" extends="struts-default">        
        <action name="forward">
            <result >/xxx.jsp</result>
        </action>
</package>

 随后再在根目录下的aa.jsp中增加如下代码:
<a href="<%=request.getContextPath()%>/forward.action">forward</a>
最后再测试访问aa.jsp,在aa.jsp中页面中直接点链接便可以跳到xxx.jsp,观察地址栏发现此时跳到xxx.jsp页面是进行的服务器内部转发,如果我们在上面的配置中的result增加type属性变成<result type="redirect">/xxx.jsp</result>,实现的就是页面重定向,这样地址栏中就会出现xxx.jsp。 像上面的这种forward形式的action实质是执行的ActionSupport 这个Action。

(2).如果我们为action指定的class,但没有为action指定method属性,则默认执行execute方法,配置如下所示:

<package name="myDemo" namespace="/demo" extends="struts-default">
		<action name="test" class="demo.action.TestAction">
		<result>/WEB-INF/jsp/test.jsp</result>
		</action>
</package>

 此时如果demo.action.TestAction类中没有execute() 方法,则访问/demo/test.action时会报错。此时TestAction类必须有execute()方法。

因为如果没有指定result的name属性,默认值为success。所以上面的配置文件中的<result>的name属性即为success,所以TestAction类中的execute() 方法必须返回"success"否则会抛出如下异常:

警告: Could not find action or result
No result defined for action demo.action.TestAction and result test

 

二、Action名称的搜索顺序

1.获得请求路径的URI,例如url是:http://server/struts2/path1/path2/path3/test.action
2.首先寻找namespace为/path1/path2/path3的package,如果存在这个package,则在这个package中寻找名字为test的action,如果不存在这个package则转步骤3;
3.寻找namespace为/path1/path2的package,如果存在这个package,则在这个package中寻找名字为test的action,如果不存在这个package,则转步骤4;
4.寻找namespace为/path1的package,如果存在这个package,则在这个package中寻找名字为test的action,如果仍然不存在这个package,就去默认的namaspace的package下面去找名字为test的action,如果还是找不到,页面提示找不到action。

分享到:
评论

相关推荐

    5Action配置的各项默认值

    Struts 2是Struts的下一代产品,是在 struts 和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理...

    传智播客struts2.1视频教程_源代码_Action配置的各项默认值

    以上就是关于"传智播客Struts2.1视频教程_源代码_Action配置的各项默认值"的主要知识点。在实际项目中,掌握这些配置项的使用能帮助开发者更高效地构建和维护Web应用。通过实践和不断探索,可以进一步提升对Struts2...

    Action名称的搜索顺序

    ### Action名称的搜索顺序与Action配置的默认值 在Struts2框架中,Action的配置与执行流程至关重要,它不仅决定了Action的执行顺序,还影响着业务逻辑的处理方式及结果展示。本文将深入探讨Action名称的搜索顺序、...

    传智播客struts2.1视频教程_源代码_Action名称的搜索顺序

    在这个“传智播客Struts2.1视频教程”中,重点讲解了Action名称的搜索顺序,这是理解Struts2工作原理的关键部分。 首先,我们需要了解Struts2中Action的基本概念。Action是Struts2的核心组件,负责处理用户的请求并...

    struts2配置文件加载顺序

    Struts2是一个流行的Java web开发框架,它提供了一种优雅的方式来组织和控制应用程序的行为。配置文件在Struts2中起着...例如,当一个Action没有按照预期执行时,我们可以检查是否因为配置冲突或者加载顺序错误导致的。

    传智播客struts2教程

    这个过程通常涉及URL映射、通配符匹配以及Action配置文件中的配置顺序。 05_传智播客struts2.1视频教程_Action配置的各项默认值.rar 这个资源可能涵盖了Struts2 Action配置的默认设置,如默认的result类型、参数...

    Action的常用配置

    Action的配置是Struts2框架中的关键部分,它涉及到应用程序的行为和流程控制。在Struts2中,Action类是业务逻辑的载体,而配置Action则是定义这些逻辑如何与用户交互和执行的重要步骤。 首先,Struts2默认会查找WEB...

    Struts2中struts_xml的Action配置详解

    在这个例子中,`saveUser`是Action的名称,当用户发送一个以`saveUser`为后缀的请求时,Struts2会将该请求映射到`SaveUserAction`类。 `class`属性指定Action的实现类,即处理请求的Java对象。这个类通常需要继承自...

    Struts 2使用注解配置Action

    在传统的Struts 2应用中,我们通常会通过XML配置文件(struts.xml)来定义Action,包括Action类、结果页面、拦截器等信息。然而,随着Java注解的广泛应用,Struts 2也引入了注解配置的方式来简化开发过程,避免了XML...

    在web.xml中配置action或.do

    ### 在web.xml中配置action或.do的理解与实践 #### 一、引言 在Web开发领域,特别是基于Java的Web应用程序开发中,`web.xml`文件扮演着至关重要的角色。它不仅定义了Web应用的基本配置,还管理着诸如Servlet、过滤...

    Action——Action的配置和作用

    今天我们就来探讨Action的含义、作用以及在Struts2框架中的配置。 首先,Action在Struts2中包含三层含义。第一层,Action可以指一个Action类,即包含业务逻辑的Java类,它负责处理客户端的请求。例如,在Struts2...

    struts2注解配置Action及拦截器几种不同方式写法对应的路径指向.docx

    "Struts2 注解配置 Action 及拦截器几种不同方式写法对应的路径指向" Struts2 注解配置 Action 及拦截器是 Struts2 框架中的核心组件之一,负责处理用户请求并返回响应结果。下面,我们将通过详细的解释和示例代码...

    struts2 action 配置方法 &&struts2的配置文件

    允许方法名与Action名称匹配,如`addCrud.action`, `deleteCrud.action`等。 - **分割符+通配符**: - 下划线(`_`): ```xml &lt;action name="crud_*" class="example.Crud" method="{1}"&gt; ``` 调用如`crud_add...

    ·Struts2配置文件介绍 超级详细

    - **Namespace**:每个`package`可以被分配到不同的命名空间(namespace),这样可以在不同的命名空间中拥有相同名称的Action,避免了命名冲突的问题。每个Action也可以指定自己的命名空间,如果未指定,则默认使用...

    04Action名称的搜索顺序

    Struts 2是Struts的下一代产品,是在 struts 和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理...

    Struts2 Action参数详细说明

    在Struts2中,Action的配置和使用方式有多种,下面将详细介绍Struts2 Action参数的详细说明。 首先,我们来看Action的配置格式。在Struts2的配置文件(通常是struts.xml)中,Action的基本配置结构如下: ```xml ...

    struts2核心配置文件

    - 指定每个Action的名称、执行的类及其方法。 - 通过 `&lt;action&gt;` 元素来配置。 2. **Result 定义**: - 定义Action执行后的结果页面或跳转路径。 - 通过 `&lt;result&gt;` 子元素来配置。 3. **包配置** (`package`)...

    Spring+SpringMVC配置加载顺序1

    Spring 和 SpringMVC 的配置加载顺序是理解这两个框架协同工作的重要方面。首先,DispatcherServlet 是 SpringMVC 的核心组件,它扮演着请求分发者的角色,确保请求被正确地路由到相应的处理器。DispatcherServlet ...

    微信小程序 action-sheet详解及实例代码

    1. `hidden`:这是一个Boolean类型的属性,默认值为`true`,表示Action-Sheet是否隐藏。当你想要显示Action-Sheet时,将其设置为`false`;反之,设置为`true`则会隐藏它。 2. `bindchange`:这是一个EventHandle...

    SSH框架配置说明(配置文件的管理)

    二是检查Spring配置文件中Bean的Name是否与Action类名称一致,确保Spring能够正确地创建和调度Action实例。 接下来,我们将详细讲解SSH框架中的四个核心配置文件: 1. **web.xml**:作为应用的部署描述符,它定义...

Global site tag (gtag.js) - Google Analytics