struts2零配置之@Action和@Actions注解

 

@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;
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值