Struts2的@Action和@Actions的区别

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

}
视屏下载地址

posted @ 2013-11-13 22:25  立里  阅读(1177)  评论(0)    收藏  举报