`
在水伊方
  • 浏览: 111584 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

struts2--Action名称的搜索顺序

阅读更多

1.获得请求路径的URI,例如url是:http://server/struts2/path1/path2/path3/test.action

 

2.首先寻找namespace/path1/path2/path3package,如果不存在这个package则执行步骤3;如果存在这个package,则在这个package中寻找名字为testaction,当在该package下寻找不到action 时就会直接跑到默认namaspacepackage里面去寻找action(默认的命名空间为空字符串“” ,如果在默认namaspacepackage里面还寻找不到该action,页面提示找不到action 

 

3.寻找namespace/path1/path2package,如果不存在这个package,则转至步骤4;如果存在这个package,则在这个package中寻找名字为testaction,当在该package中寻找不到action 时就会直接跑到默认namaspacepackage里面去找名字为testaction ,在默认namaspacepackage里面还寻找不到该action,页面提示找不到action 

 

4.寻找namespace/path1package,如果不存在这个package则执行步骤5;如果存在这个package,则在这个package中寻找名字为testaction,当在该package中寻找不到action 时就会直接跑到默认namaspacepackage里面去找名字为testaction ,在默认namaspacepackage里面还寻找不到该action,页面提示找不到action 

 

5.寻找namespace/package,如果存在这个package,则在这个package中寻找名字为testaction,当在package中寻找不到action或者不存在这个package时,都会去默认namaspacepackage里面寻找action,如果还是找不到,页面提示找不到action

 

示例:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
	<package name="struts" namespace="/test" extends="struts-default">
		<action name="helloworld" class="cn.struts.demo.HelloWorldAction"
			method="execute">
			<result name="success">/WEB-INF/page/hello.jsp</result>
		</action>
	</package>
</struts>

 

 

则访问路径为:http://localhost:8080/strutsdemo/test/helloworld(正常情况下是这样访问)

或者是http://localhost:8080/strutsdemo/test/aaa/helloworld

或者是http://localhost:8080/strutsdemo/test/aaa/bbb/helloworld 都可以

 

注:当在该package下寻找不到action 时就会直接跑到默认namaspacepackage里面去寻找action(默认的命名空间为空字符串“” ),对这句话举个例子说明一下:

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
	<package name="struts" namespace="/test" extends="struts-default">
	</package>
	
	<package name="default" namespace="" extends="struts-default">
		<action name="helloworld" class="cn.struts.demo.HelloWorldAction"
			method="execute">
			<result name="success">/WEB-INF/page/hello.jsp</result>
		</action>
	</package>
</struts>

 

访问的路径还是http://localhost:8080/strutsdemo/test/helloworld,不过此时name为struts的包并没有helloworld这个action,所以现在就到默认命名空间下面的包也即name为default的包中寻找name为helloworld的action,如果该包下面也没有helloworld这个action,则页面会报HTTP-404错误

 

 

分享到:
评论

相关推荐

    struts2-convention-plugin-2.1.6.jar

    在传统的Struts2应用中,开发者通常需要在`struts.xml`中定义每个Action及其对应的类、方法、结果页面等,而使用此插件后,大部分配置可以通过命名约定自动完成。 具体来说,当使用`struts2-convention-plugin`时,...

    struts2-action.pdf

    ### Struts2中Action的理解与应用 #### 一、Action定义及作用 在Struts2框架中,Action作为控制层的核心组件,承担着接收请求、处理业务逻辑以及返回响应结果的任务。与传统的MVC框架(如Spring MVC)相比,Struts...

    struts-config详解

    * 显示名称配置(&lt;display-name /&gt;):用于配置struts应用程序的显示名称,例如简短的文字描述。 * 描述配置():用于配置struts应用程序的描述,例如完整的文字描述。 * 属性设置配置(&lt;set-property /&gt;):用于...

    struts2-4标签库文件上传下载

    ### Struts2-4 标签库文件上传下载 #### 概述 Struts2框架提供了丰富的标签库,其中包含了多种用于简化Web开发过程的标签。这些标签不仅可以提高开发效率,还能增强页面的表现力和交互性。特别是对于文件的上传与...

    struts-config.xml

    每个`&lt;action&gt;`元素包含了Action的名称、对应的类以及可能的转发路径。 5. **`&lt;controller&gt;`**: 控制器部分,虽然在早期版本的Struts中使用,但在现代版本中已不再常用。在Struts 2中,控制器由Servlet ...

    struts2-拦截器.docx

    Struts2 拦截器是基于AOP(面向切面编程)的一种实现,它允许在Action调用前后插入特定的操作,提供了灵活的控制流程,增强了框架的功能和可扩展性。拦截器的主要作用包括:增强代码复用性、提供事务管理、日志记录、...

    struts-2.5.2-docs.zip

    4. **拦截器**:拦截器是Struts 2的一个强大特性,它们按照预定义的顺序执行,可以实现如日志、权限检查、事务管理等通用功能,增强代码复用。 5. **结果类型**:Struts 2支持多种结果类型,如dispatcher(默认,...

    Struts2 运行流程分析

    7. **拦截器链执行**:在调用Action之前,Struts2会按照配置的顺序执行一系列拦截器。这些拦截器可以实现日志、权限检查、事务控制等功能。每个拦截器都有`preintercept`和`postintercept`方法,分别在调用Action...

    struts-config.xml配置文件详解

    需要注意的是,Struts-config.xml 文件中的元素必须按照特定的顺序出现,否则可能会导致 Struts 容器启动时出错。 Struts-config.xml 文件是 Struts 框架的核心配置文件,用于配置 Struts 应用程序的各种设置。通过...

    struts2 API (包括struts标签库 struts jar包等)

    - **Action类**: Struts2中的Action类是业务逻辑处理的主要载体。开发者可以创建自定义的Action类,继承自`com.opensymphony.xwork2.ActionSupport`或其子类,实现业务逻辑方法,并通过`execute()`方法返回一个表示...

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

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

    struts2核心包

    至于压缩包子文件的文件名称列表"struts2",这可能是表示包含了一系列与Struts2相关的文件,如示例代码、配置文件或其他相关库。 总之,Struts2是一个成熟的MVC框架,通过Action、Interceptor、Result等核心组件,...

    Struts2笔记

    2. **默认的搜索顺序**:对于Struts2中的常量,框架会按照一定的顺序进行搜索,这包括: - `struts2-default.xml` - `struts2-plugin.xml` - `struts.xml` - `struts.properties` - `web.xml`中通过`&lt;include&gt;`...

    Struts2_Action

    Struts2框架的配置文件不仅仅是struts.xml,还包括几个核心配置文件,其加载顺序如下: 1. struts-default.xml:提供默认的配置,包含默认拦截器栈和拦截器定义。 2. struts-plugin.xml:插件的配置文件,如果使用...

    struts2的文档

    Action的配置包括Action名称、类名、方法以及对应的URL映射。拦截器是Struts2的一个强大特性,它们按照预定义的顺序在Action执行前后进行处理,可以用于日志记录、权限验证、数据校验等任务。结果类型则定义了Action...

    struts2案例 struts2 struts2源码

    此外,Interceptor(拦截器)是Struts2的重要特性,它可以实现诸如日志记录、权限检查、事务管理等通用功能,并且可以按照特定顺序进行链式调用。 Struts2的配置文件通常为struts.xml,它定义了Action、Result以及...

    struts2的复习

    5. 拦截器:拦截器是Struts2的核心组件,它们按照预设顺序在Action执行前后执行,实现AOP(面向切面编程)功能,如日志记录、权限验证、性能监控等。开发者可以通过自定义拦截器来扩展框架功能。 五、配置与注解 6....

    Action名称的搜索顺序

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

    Struts2工作机制

    总的来说,Struts2的工作流程大致为:请求到达-&gt;过滤器Dispatcher拦截-&gt;查找Action映射-&gt;创建Action实例-&gt;执行拦截器链-&gt;调用Action的execute方法-&gt;返回Result-&gt;渲染视图。这种设计允许开发者将业务逻辑、数据验证、...

Global site tag (gtag.js) - Google Analytics