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" 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;}
?视屏下载地址