struts2注解总结----@Action和@Result

struts2注解总结----@Action和@Result

除了使用配置文件配置之外,还能够使用注解来配置

以下是一些经常使用的注解

介绍:

 

@Action/@Actions:

@Action指定一个类为action,相应配置文件里的<action>....</action>标签,当中能够配置例如以下属性

  1. results:配置返回的结果集属性,相当于struts2中的<result>列表,能够在{}中配置属性,详细例如以下
  2. value:配置action的名字,相当于<action>中的name属性
  3. interceptorRefs:配置拦截器

@Action能够定义在类上,也能够定义在方法上

例如以下(@Result的作用后面讲,也能够和后面的配合着看)

<span style="color:#333333">@Action(value = "testAction",results = {@Result(name="success",location="/success.jsp")})
public class testAction extends ActionSupport {

	@Override
	public String execute() throws Exception {
		return SUCCESS;
	}
}</span>

这就相当于例如以下的xml配置

<span style="color:#333333"><action name="testAction" class="struts2.action.testAction">
	<result name="success">/success.jsp</result>
</action></span>

在xml配置中假设name不写,那么默认就是success,在注解中也是,假设results中的name不写。那么默认就是success

 

也能够使用@Actions来指定多个action映射,这样能够做到一个类相应多个地址映射。例如以下

<span style="color:#333333">@Actions({
	@Action(value = "testAction",results = {@Result(location="/success.jsp")}),
	@Action(value = "testAction2",results = {@Result(location="/success.jsp")})
})
public class testAction extends ActionSupport {

	@Override
	public String execute() throws Exception {
		return SUCCESS;
	}
}</span>

这是使用/testAction或者/testAction2都能够跳转到success.jsp上。由于配置了两个action映射

 

 

在xml配置中,我们有例如以下的配置方法

<span style="color:#333333"><action name="*" class="struts2.action.testAction" method={1}>
	<result name="{1}">/{1}.jsp</result>
</action></span>

这是xml配置中的通配符方式,即当我们以add来訪问action时。将会进到action的add方法进行处理。当返回add时会跳转到add.jsp页面在注解中没有通配符能够使用,可是也能够实现类似的效果,这时@Action就要写在方法上了,就像以下这样

<span style="color:#333333">public class testAction extends ActionSupport {
	@Action(value = "add",results = {@Result(name="add",location="/add.jsp")})
	public String add() throws Exception {
		return "add";
	}
	@Action(value = "delete",results = {@Result(name="delete",location="/delete.jsp")})
	public String delete() throws Exception {
		return "delete";
	}
}</span>

这样便实现了上面的效果。这说明@Action也是能够在方法上声明的(@Actions也能够在方法上声明)

@Result/@Results:

@Result配置详细返回结果。在results中使用,也能够单独在类上使用,有例如以下属性

  1. name:相应<result>中的name属性
  2. location:相应<result></result>间的地址
  3. type:相应<result>的type属性

@Result能够在类上声明。也能够和Action配置声明,假设在类上声明,那么就是全局的结果,例如以下

<span style="color:#333333">@Result(name="delete",location = "/delete.jsp")
public class testAction extends ActionSupport {
	@Action(value = "add", results = { @Result(name = "add", location = "/add.jsp") })
	public String add() throws Exception {
		return "add";
	}

	@Action(value = "delete")
	public String delete() throws Exception {
		return "delete";
	}
}</span>

尽管delete方法没有指定返回delete时要跳转到哪个页面页面。可是在类上用@Result声明了,那么就会找到类上面的这个@Result,然后跳转到delete.jsp页面

@Results是用来声明多个结果集。使用方法和@Actions类似,这里就不再详述

 

 

 

 

 

 

【众安尊享e生】-国民百万医疗保险,投保详解及案例分析,每年最低112元——马云杀手锏

好文要顶 关注我 收藏该文  

clnchanpin
关注 - 0
粉丝 - 10

+加关注

0

0

« 上一篇:微信公共开发人员文档 阅读笔记
» 下一篇:《学习bash》笔记--调试shell程序

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值