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

除了使用配置文件配置之外,还可以使用注解来配置

下面是一些常用的注解

介绍:

 

@Action/@Actions:

@Action指定一个类为action,对应配置文件中的....标签,其中可以配置如下属性

results:配置返回的结果集属性,相当于struts2中的列表,可以在{}中配置属性,具体如下value:配置action的名字,相当于中的name属性interceptorRefs:配置拦截器 @Action可以定义在类上,也可以定义在方法上 如下(@Result的作用后面讲,也可以和后面的配合着看)
?
1
2
3
4
5
6
7
8
@Action (value = "testAction" ,results = { @Result (name= "success" ,location= "/success.jsp" )})
public class testAction extends ActionSupport {
 
     @Override
     public String execute() throws Exception {
         return SUCCESS;
     }
}
这就相当于如下的xml配置
?
1
2
3
     <result name= "success" >/success.jsp</result>
</action>
在xml配置中如果name不写,那么默认就是success,在注解中也是,如果results中的name不写,那么默认就是success
也可以使用@Actions来指定多个action映射,这样可以做到一个类对应多个地址映射,如下
?
1
2
3
4
5
6
7
8
9
10
11
@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;
     }
}
这是使用/testAction或者/testAction2都可以跳转到success.jsp上,因为配置了两个action映射

在xml配置中,我们有如下的配置方法
?
1
2
3
     <result name= "{1}" >/{ 1 }.jsp</result>
</action>
这是xml配置中的通配符方式,即当我们以add来访问action时,将会进到action的add方法进行处理,当返回add时会跳转到add.jsp页面 在注解中没有通配符可以使用,但是也可以实现类似的效果,这时@Action就要写在方法上了,就像下面这样
?
1
2
3
4
5
6
7
8
9
10
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" ;
     }
}
这样便实现了上面的效果,这说明@Action也是可以在方法上声明的(@Actions也可以在方法上声明)

@Result/@Results:

@Result配置具体返回结果,在results中使用,也可以单独在类上使用,有如下属性

name:对应中的name属性location:对应间的地址type:对应的type属性 @Result可以在类上声明,也可以和Action配置声明,如果在类上声明,那么就是全局的结果,如下
?
1
2
3
4
5
6
7
8
9
10
11
12
@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" ;
     }
}
虽然delete方法没有指定返回delete时要跳转到哪个页面页面,但是在类上用@Result声明了,那么就会找到类上面的这个@Result,然后跳转到delete.jsp页面

@Results是用来声明多个结果集,用法和@Actions类似,这里就不再详述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值