一、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。
分享到:
相关推荐
Struts 2是Struts的下一代产品,是在 struts 和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理...
以上就是关于"传智播客Struts2.1视频教程_源代码_Action配置的各项默认值"的主要知识点。在实际项目中,掌握这些配置项的使用能帮助开发者更高效地构建和维护Web应用。通过实践和不断探索,可以进一步提升对Struts2...
### Action名称的搜索顺序与Action配置的默认值 在Struts2框架中,Action的配置与执行流程至关重要,它不仅决定了Action的执行顺序,还影响着业务逻辑的处理方式及结果展示。本文将深入探讨Action名称的搜索顺序、...
在这个“传智播客Struts2.1视频教程”中,重点讲解了Action名称的搜索顺序,这是理解Struts2工作原理的关键部分。 首先,我们需要了解Struts2中Action的基本概念。Action是Struts2的核心组件,负责处理用户的请求并...
Struts2是一个流行的Java web开发框架,它提供了一种优雅的方式来组织和控制应用程序的行为。配置文件在Struts2中起着...例如,当一个Action没有按照预期执行时,我们可以检查是否因为配置冲突或者加载顺序错误导致的。
这个过程通常涉及URL映射、通配符匹配以及Action配置文件中的配置顺序。 05_传智播客struts2.1视频教程_Action配置的各项默认值.rar 这个资源可能涵盖了Struts2 Action配置的默认设置,如默认的result类型、参数...
Action的配置是Struts2框架中的关键部分,它涉及到应用程序的行为和流程控制。在Struts2中,Action类是业务逻辑的载体,而配置Action则是定义这些逻辑如何与用户交互和执行的重要步骤。 首先,Struts2默认会查找WEB...
在这个例子中,`saveUser`是Action的名称,当用户发送一个以`saveUser`为后缀的请求时,Struts2会将该请求映射到`SaveUserAction`类。 `class`属性指定Action的实现类,即处理请求的Java对象。这个类通常需要继承自...
在传统的Struts 2应用中,我们通常会通过XML配置文件(struts.xml)来定义Action,包括Action类、结果页面、拦截器等信息。然而,随着Java注解的广泛应用,Struts 2也引入了注解配置的方式来简化开发过程,避免了XML...
### 在web.xml中配置action或.do的理解与实践 #### 一、引言 在Web开发领域,特别是基于Java的Web应用程序开发中,`web.xml`文件扮演着至关重要的角色。它不仅定义了Web应用的基本配置,还管理着诸如Servlet、过滤...
今天我们就来探讨Action的含义、作用以及在Struts2框架中的配置。 首先,Action在Struts2中包含三层含义。第一层,Action可以指一个Action类,即包含业务逻辑的Java类,它负责处理客户端的请求。例如,在Struts2...
"Struts2 注解配置 Action 及拦截器几种不同方式写法对应的路径指向" Struts2 注解配置 Action 及拦截器是 Struts2 框架中的核心组件之一,负责处理用户请求并返回响应结果。下面,我们将通过详细的解释和示例代码...
允许方法名与Action名称匹配,如`addCrud.action`, `deleteCrud.action`等。 - **分割符+通配符**: - 下划线(`_`): ```xml <action name="crud_*" class="example.Crud" method="{1}"> ``` 调用如`crud_add...
- **Namespace**:每个`package`可以被分配到不同的命名空间(namespace),这样可以在不同的命名空间中拥有相同名称的Action,避免了命名冲突的问题。每个Action也可以指定自己的命名空间,如果未指定,则默认使用...
Struts 2是Struts的下一代产品,是在 struts 和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理...
在Struts2中,Action的配置和使用方式有多种,下面将详细介绍Struts2 Action参数的详细说明。 首先,我们来看Action的配置格式。在Struts2的配置文件(通常是struts.xml)中,Action的基本配置结构如下: ```xml ...
- 指定每个Action的名称、执行的类及其方法。 - 通过 `<action>` 元素来配置。 2. **Result 定义**: - 定义Action执行后的结果页面或跳转路径。 - 通过 `<result>` 子元素来配置。 3. **包配置** (`package`)...
Spring 和 SpringMVC 的配置加载顺序是理解这两个框架协同工作的重要方面。首先,DispatcherServlet 是 SpringMVC 的核心组件,它扮演着请求分发者的角色,确保请求被正确地路由到相应的处理器。DispatcherServlet ...
1. `hidden`:这是一个Boolean类型的属性,默认值为`true`,表示Action-Sheet是否隐藏。当你想要显示Action-Sheet时,将其设置为`false`;反之,设置为`true`则会隐藏它。 2. `bindchange`:这是一个EventHandle...
二是检查Spring配置文件中Bean的Name是否与Action类名称一致,确保Spring能够正确地创建和调度Action实例。 接下来,我们将详细讲解SSH框架中的四个核心配置文件: 1. **web.xml**:作为应用的部署描述符,它定义...