标签:struts2 注解
struts2-convention-plugin-2.x.x.jar是用于支持注解的包;
所以要使用注解方式,我们必须添加这个额外的包。
并且在WEB.XML文件中struts过滤器设置为
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
一、Struts2常用注解如下:
Namespace:指定命名空间。
该注解相当于<package name="login" extends="struts-default" namespace="logintest"></package>中的namespace属性,例如:@Namespace(value="/longspace")
ParentPackage:指定父包。
该注解相当于<package name="login" extends="struts-default"></package>中的extends属性,例如:@ParentPackage(value="struts-default")
Result:提供了Action结果的映射。(一个结果的映射)
该注解相当于<action name="login" class="com.lwsoft.action.LoginAction">
<result name="success">/loginsuc.jsp</result>
</action>中的<result name="success">/loginsuc.jsp</result>
例如:@Result(name="success",location="/loginsuc.jsp",type="redirect") !!!注意,在struts2.1.6中是location来转向页面,而在struts2.0.4是value属性
Results:“Result”注解列表
@Results({
@Result(name=SUCCESS,location="/index.jsp"),
@Result(name=ERROR,location="/error.jsp")
})来配置多个转向
name属性指定返回的字符串,
location指定要跳转的页面,
type指定Result的类型
ResultPath:指定结果页面的基路径。
Action:指定Action的访问URL。
该注解相当于<action name="login" class="com.lwsoft.action.LoginAction">
<result name="success">/loginsuc.jsp</result>
</action>中的<action name="login" class="com.lwsoft.action.LoginAction">例如:@Action(value = "login", results = { @Result(name = SUCCESS, location = "/index.jsp") })
Actions:“Action”注解列表。一个ACTION中的一个方法,响应多个不同的URL的效果。
ExceptionMapping:指定异常映射。(映射一个声明异常)
ExceptionMappings:一级声明异常的数组。
InterceptorRef:拦截器引用。
InterceptorRefs:拦截器引用组。
二、示例代码如下:
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.ExceptionMapping;
import org.apache.struts2.convention.annotation.ExceptionMappings;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import com.opensymphony.xwork2.ActionSupport;
/**
* Struts2基于注解的Action配置
*/
@ParentPackage("struts-default")
@Namespace("/test")
@Results({ @Result(name = "success", location = "/main.jsp"),
@Result(name = "error", location = "/error.jsp") })
@ExceptionMappings({ @ExceptionMapping(exception = "java.lange.RuntimeException", result = "error") })
public class LoginAction extends ActionSupport {
private String loginName;
private String password;
@Action(LOGIN)
// 或者写成 @Action(value = LOGIN)
public String login() throws Exception {
if ("yjd".equals(loginName) && "yjd".equals(password)) {
return SUCCESS;
} else {
return ERROR;
}
}
@Action(value = "add", results = { @Result(name = SUCCESS, location = "/index.jsp") })
public String add() throws Exception {
return SUCCESS;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
标签:struts2 注解
原文地址:http://java2013.blog.51cto.com/2841631/1694577