关于 Struts2 中namespace 搜索action顺序 大致思想类似递归搜索,网络上有前辈已总结好:
自此仅作引用不在赘述:
http://www.cnblogs.com/lich/archive/2011/12/08/2281346.html 写道
让我们来看一下Action名称的搜索顺序
1.获得请求路径的URI,例如url是:http://server/struts2/path1/path2/path3/test.action
2.首先寻找namespace为/path1/path2/path3的package,如果不存在这个package则执行步骤3;如果存在这个package,则在这个package中寻找名字为test的action,当在该package下寻找不到action 时就会直接跑到默认namaspace的package里面去寻找action(默认的命名空间为空字符串“” ) ,如果在默认namaspace的package里面还寻找不到该action,页面提示找不到action
3.寻找namespace为/path1/path2的package,如果不存在这个package,则转至步骤4;如果存在这个package,则在这个package中寻找名字为test的action,当在该package中寻找不到action 时就会直接跑到默认namaspace的package里面去找名字为test的action ,在默认namaspace的package里面还寻找不到该action,页面提示找不到action
4.寻找namespace为/path1的package,如果不存在这个package则执行步骤5;如果存在这个package,则在这个package中寻找名字为test的action,当在该package中寻找不到action 时就会直接跑到默认namaspace的package里面去找名字为test的action ,在默认namaspace的package里面还寻找不到该action,页面提示找不到action
5.寻找namespace为/的package,如果存在这个package,则在这个package中寻找名字为test的action,当在package中寻找不到action或者不存在这个package时,都会去默认namaspace的package里面寻找action,如果还是找不到,页面提示找不到action。
分享到:
相关推荐
1. `@Action`: 这是Struts 2中最核心的注解,用于标记一个方法为处理请求的Action。你可以指定Action的名字、结果页面和其他属性。例如: ```java @Action(value = "myAction", results = { @Result(name = ...
在Struts2中,模块通过Action配置进行定义,每个Action对应于一个特定的业务逻辑或用户请求。模块化设计允许开发者在一个应用中组合多个Action,形成一个功能完整的模块,这些模块可以独立工作,也可以互相协作。 ...
在Struts2中,Action类是处理用户请求的核心组件,它封装了业务逻辑。为Action的属性注入值是Struts2的一个关键特性,使得我们可以方便地从请求参数中获取数据并绑定到Action实例上,以便后续的业务处理。 这个特性...
Struts2 Action是该框架中的核心组件,用于处理用户请求并返回相应的响应。 首先,要了解Struts2 Action的开发,需要熟悉其基本概念。Struts2 Action本质上是一个Java类,它包含了处理用户请求的业务逻辑。为了将这...
Struts2 注解配置 Action 及拦截器是 Struts2 框架中的核心组件之一,负责处理用户请求并返回响应结果。下面,我们将通过详细的解释和示例代码,来介绍 Struts2 中的注解配置 Action 及拦截器几种不同方式的写法对应...
在Struts2中,Action类是核心组件,它扮演着控制器的角色,负责处理用户请求并协调模型和视图。本教程将深入探讨Struts2 Action的使用方法。 **一、Action类** 在Struts2框架中,Action类是处理用户请求的核心。...
在Struts2中,Action的搜索顺序是由其配置文件(通常是struts.xml)决定的。当用户请求被拦截并解析后,Struts2会根据请求的URI来匹配相应的Action配置。默认情况下,Struts2会按照以下步骤进行Action的搜索: 1. *...
2. **模型驱动**:使用一个公共对象作为模型,Action类持有这个模型的引用,Struts2将请求参数填充到模型对象中,这种方式更便于数据管理和共享。 此外,Struts2还支持动态方法调用、国际化、主题和模板、AJAX集成...
在Struts2中,`package`元素是核心组件,用于组织Action、拦截器等。一个包可以看作是一个模块,其中包含多个Action和拦截器。`package`元素具有以下重要的属性: 1. **name**:这是必填属性,用于为包设置唯一的...
- 动作类的搜索顺序遵循一定的规则,通常情况下,Struts2会根据配置文件中的顺序来查找对应的动作类。 通过以上内容,我们可以了解到Struts2作为一个成熟的MVC框架,在项目开发中扮演的重要角色。从环境搭建到第一...
在Struts2中,Actions可以通过其getter和setter方法访问数据,这些数据可以在视图层显示或者从视图层接收。Struts2还提供了自动的数据类型转换功能,可以将基本类型的数据进行转换,同时允许开发者定义更复杂的转换...
在Struts2中,这些处理逻辑被封装在独立的类中,当请求到达Action之前,拦截器会按照预定义的顺序执行,执行完后再继续进行Action处理,最后返回结果。拦截器可以用于日志记录、权限验证、性能监控等多种场景。 **...
Struts2的拦截器链是按照声明的顺序执行的,每个拦截器都有机会在Action执行前后进行操作。`struts2PreResultListener`接口提供的方法使得开发者能够在Action执行完毕且结果准备发送给视图之前进行干预。这使得我们...
以下是对Struts2中几种主要结果集类型的详细说明: 1. **Dispatcher** 类型: 这是Struts2的默认结果类型,它使用Servlet的`RequestDispatcher`进行转发。当Action方法返回一个字符串,例如"success",Struts2会...
在这个实例中,我们将深入探讨Struts2的核心概念、配置以及如何创建一个简单的应用程序。 首先,理解Struts2的核心理念至关重要。Struts2框架通过提供一系列拦截器(Interceptor)来处理HTTP请求,这些拦截器按照预...
检查`struts.xml`中的Action配置至关重要,确保每个Action的命名、namespace和结果类型都正确无误。 1. **Action配置检查**:确保每个Action的`<action>`元素都有正确的`name`属性,该属性值应与客户端请求的Action...
在Struts2中,Action通过`package`和`namespace`进行组织,使得URL更具可预测性。此外,通过`<result>`元素配置处理结果,将Action的输出与视图层(通常是JSP页面)连接起来,实现业务逻辑与展示逻辑的解耦。 #### ...
在Struts2中,拦截器(Interceptor)扮演着至关重要的角色,它允许开发者在动作执行前后插入自定义逻辑,如日志记录、权限验证等。在本案例中,我们将深入探讨如何使用Struts2拦截器实现登录权限验证,同时结合...
拦截器在Struts2中的作用就像电影中的导演,它在动作执行前后插入额外的逻辑,比如日志记录、权限检查、数据验证等。这些操作不需要在每个具体的Action类中重复编写,而是通过配置拦截器链来实现。这样既提高了代码...
如果在 Struts.xml 文件中没有配置 namespace,则 Struts2 会自动将请求分配给默认空间。在这种情况下,如果配置一个 Action 名字叫做 login,它的 result 配置如下: ```xml <result>/login.jsp ```