@Action和@Actions注解详解
package org.rabbitx.web.struts2.annotation; import org.apache.log4j.Logger; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Actions; import com.opensymphony.xwork2.ActionSupport; public class ActionAnnotationAction extends ActionSupport{ private static final long serialVersionUID = -875096768864638232L; private Logger logger = Logger.getLogger(ActionAnnotationAction.class); /** * * 1. 使用@Action注解改变Convention plug约定的action与url之间的映射关系,,原来的约定被覆盖并不再起作用。 * 原来约定地址:http://localhost:8080/org.rabbitx.web.struts2.convention/annotation/action-annotation * 重写后的地址:http://localhost:8080/org.rabbitx.web.struts2.convention/execute */ @Override @Action("/execute") public String execute() throws Exception { logger.info("------ConventionAnnotationAction-----execute-------"); return SUCCESS; } /** * 2. 使用@Actions注解解决一个ACTION中的一个方法,响应多个不同的URL。 * 实际项目开发过程中有很大的几率碰到Action的处理相同,但是最终跳转的页面不同的情况。将@Actions和@Action组合起来用即可解决这样的需求。 * 访问地址:http://localhost:8080/org.rabbitx.web.struts2.convention/multi-url-a * http://localhost:8080/org.rabbitx.web.struts2.convention/multi-url-b * http://localhost:8080/org.rabbitx.web.struts2.convention/multi-url-c */ @Actions({ @Action("/multi-url-a"), @Action("/multi-url-b"), @Action("/multi-url-c") }) public String multiUrl2SingleAction() { logger.info("------ConventionAnnotationAction-----multiUrl2SingleAction-------"); return SUCCESS; } /** * 3. 使用@Action注解解决一个ACTION中的多个方法,其中每个方法响应不同的URL. * 4. 注解@Action的value值使用相对路径. * "relative-action-url"没有以"/"开头,表示使用了相对路径。 * 使用相对路径后,访问此方法需要使用 namespace + url 的方式,即/annotation/relative-action-url。 * 使用相对路径后,响应的页面资源默认放在对应的命名空间目录下,即/content/annotation/relative-action-url.jsp。 * 访问地址:http://localhost:8080/org.rabbitx.web.struts2.convention/annotation/relative-action-url */ @Action("relative-action-url") public String relativeActionUrl() { logger.info("------ConventionAnnotationAction-----relativeActionUrl-------"); return SUCCESS; } /** * 5. 注解@Action的value值使用绝对路径. * "/absolute-action-url"以"/"开头,表示使用了绝对路径。 * 使用绝对路径后,访问此方法可以直接使用地址,即/absolute-action-url。 * 使用绝对路径后,响应的页面资源默认放在跟目录对应目录下,即/content/absolute-action-url.jsp。 * 访问地址:http://localhost:8080/org.rabbitx.web.struts2.convention/absolute-action-url */ @Action("/absolute-action-url") public String absoluteActionUrl() { logger.info("------ConventionAnnotationAction-----absoluteActionUrl-------"); return SUCCESS; } }
相关推荐
本文旨在为读者提供一套详尽的Struts2注解配置指南,帮助大家快速理解和掌握如何通过注解来配置Struts2的Action。 #### 二、Struts2注解配置基础 ##### 1. Struts2注解支持概述 - **插件依赖**:要启用Struts2的...
- **默认行为**:默认情况下,Convention插件会自动扫描包含`action`, `actions`, `struts`, `struts2`等关键字的包,从中查找Action类。 - **自定义搜索包**:可以通过`struts.convention.package.locators`属性来...
Struts2 和 Spring 的整合是企业级 Java Web 开发中常见的技术栈,通过注解配置可以使项目更加简洁、易于维护。Struts2 提供了一种使用注解替代 XML 配置的方式,使得开发者无需编写繁琐的 struts.xml 文件,即可...
可以通过配置项 `struts.convention.package.locators` 来指定搜索的位置,例如:`actions`, `action`, `struts`, `struts2` 等。这表示框架会在这些命名空间下查找 Action 类。此外,还可以通过 `struts.convention...
在Struts2中,注解提供了一种声明式的方式来配置Action类和结果页面,而无需编写XML配置文件。这使得代码更加简洁,易于理解和维护。例如,你可以使用`@Action`注解标记一个方法作为处理用户请求的Action,使用`@...
### Struts2注解详细说明 ...通过以上步骤,我们不仅了解了Struts2 Convention Plugin的基本原理和配置方式,还通过具体的示例加深了对其实现机制的理解。这对于简化开发流程、提高开发效率具有重要意义。
5. **注解配置**:除了XML,Struts2还支持在Action类和方法上使用注解进行配置,使得代码更加简洁。例如: ```java @Namespace("/users") @ResultPath("/WEB-INF/content") public class UserController { @...
在Struts2中,零配置的概念意味着尽量减少或避免手动编写XML配置文件,以提高开发效率和减少出错的可能性。`Convetion`插件是Struts2实现零配置的核心工具,它基于“约定优于配置”的原则工作。 ### 1. Convention ...
Struts2是一款流行的Java web开发框架,其零配置特性始于版本2.1,主要通过引入Convention插件实现。Convention插件旨在简化应用配置,避免过度依赖XML或注解,通过预定义的规则自动配置Action、结果视图以及Action...
在Struts2的版本2.1之后,它引入了Convention插件,以实现更加灵活和自动化的配置。这个插件的目标是减少XML配置文件的使用,通过约定优于配置(Convention over Configuration)原则,简化开发流程。 Convention...
除了注解,Struts2还提供了约定(Convention)模式,即零配置模式,进一步简化了配置流程。约定模式下,框架会根据Action的命名规则、包结构自动生成配置,但适用范围有限,主要用于快速原型开发或小型项目。 - **...
STRUTS2 Convention 零配置是Struts2框架自版本2.1开始引入的一种新型配置方式,旨在简化开发过程,提高开发效率。它通过自动根据预定义的约定来配置Action,无需手动编写XML配置文件或者使用注解,极大地减少了...
Struts2.1引入了Convention Plugin,以实现框架的零配置目标,替代之前的Codebehind Plugin。这个插件通过约定优于配置的原则简化了Struts2的应用开发,减少了XML配置文件的需求。以下是对Convention Plugin主要特性...
Struts2注解是Struts2框架中的一种简化配置的方式,允许开发者...总结,Struts2注解提供了更灵活且直观的配置方式,通过注解可以直接在Action类和方法上进行配置,减少了XML配置文件的依赖,使得开发流程更加简洁高效。
Struts2注解是框架提供的一种简化XML配置的方式,它允许开发者在Action类或方法上直接添加注解,实现Action、结果(Result)和拦截器(Interceptor)的配置。这种方式提高了代码的可读性和可维护性,同时也减少了XML...
开发者无需手动编写XML配置文件(如struts.xml),甚至无需使用注解,Convetion插件能够自动识别和配置Action。 **如何使用Convetion插件** 首先,你需要将`struts-Convention-plugin-2.1.6.jar`添加到项目的`WEB-...
3. **配置灵活性**:Struts2支持XML和注解两种配置方式,可以根据项目需求选择适合的配置方式。XML配置更加直观,而注解配置则更简洁。 4. **插件体系**:Struts2拥有丰富的插件库,如Tiles、Freemarker、i18n等,...
从struts2.1版本开始,Convention Plugin作为替换替换Codebehind Plugin来实现Struts2的零配置。• 包命名习惯来指定Action位置• 命名习惯制定结果(支持JSP,FreeMarker等)路径• 类名到URL的约定转换• 包名...