Struts2的@Action和@Actions的区别

来源:互联网 发布:js 精度丢失 知乎 编辑:程序博客网 时间:2024/05/22 03:36

@Actlon 和@Actlons 都是既可以用在类级,又可以用在方法级上。

@Action的属性:

value: 指定URL中的映射名称。

params: 指定需要注入到Action 的参数。

results: 指定结果。

interceptorRefs: 指定拦截器引用。

excepitonMappings: 声明错误处理。

public class HelloWorldAction extends ActionSupport {    @Action(value = "/annoMethod", params = { "username", "admin", "password",           "123456" }, results = {           @Result(name = "success", location = "/anno/success.jsp"),           @Result(name = "error", location = "/anno/error.jsp") }, interceptorRefs = {           @InterceptorRef("timer"), @InterceptorRef("defaultStack") }, exceptionMappings = {           @ExceptionMapping(exception = "java.lang.NullPointerException", result = "nullError"),           @ExceptionMapping(exception = "java.lang.Exception", result = "error") })    public String method() throws Exception {       System.out.println("now is HelloWorld");       return SUCCESS;    }     private String username;    private String password;    // ... }

相当于:

<action name="annoAction" class="cn.itcast.user.action.HelloWorldAction" method="method">    <param name="username">admin</param><param name="password">123456</param>    <interceptor-ref name="timer" />    <interceptor-ref name="defaultStack" />    <exception-mapping result="error" exception="java.lang.Exception" />    <exception-mapping result="nullError" exception="java.lang.NullPointerException" />    <result name="success">/anno/success.jsp</result>    <result name="error">/anno/error.jsp</result>    <result name="nullError">/anno/error.jsp</result></action>

而@Actions 是可以包含多个@Action 的注解:

@Actions({@Action("/annoMethod"),@Action("/method")})public String method() throws Exception {    System.out.println("now is HelloWorld");    return SUCCESS;}

视屏下载地址