struts中采用注解配置Action
2015-04-24 08:42
281 查看
需要导入struts2-convention-plugin的jar包
Action
省略getters和setters
@ParentPackage("xystruts-default")
@Namespace("/login")
public class LoginAction extends BaseAction
{
private String verifyCode;
@Action(value = "login", results = { @Result(location = "/pages/main.jsp"), @Result(name = "login", location = "/pages/login.jsp")
})
public String login()
{
String sysVerifyCode = (String) getSession().get("verifyCode");
if (StringHelper.isEmpty(verifyCode) || !sysVerifyCode.equalsIgnoreCase(verifyCode))
{
addActionError("验证码错误");
return "login";
}
return "success";
}
@Action(value = "logout", results = { @Result(location = "/pages/login.jsp") })
public String logout()
{
Map session = getSession();
if (session != null)
session.clear();
return "success";
}
}
JSP
<form action="login/login.action"></form>
<a href="login/logout.action">登出</a>
其中Result注解中name属性为空,表示默认为"success"
常用注解如下
Namespace:指定命名空间
ParentPackage:指定父包
Result:提供了Action结果的映射(一个结果的映射)
Results:Result注解列表
ResultPath:指定结果页面的基路径
Action:指定Action的访问URL
Actions:Action注解列表
ExceptionMapping:指定异常映射(映射一个声明异常)
ExceptionMappings:一级声明异常的数组
InterceptorRef:拦截器引用
InterceptorRefs:拦截器引用组
以上注解详细:
@ParentPackage,这个注解对应了xml文件中的package节点,它只有一个属性叫value,其实就是package的name属性;
@Namespace,命名空间,也就是xml文件中<package>的namespace属性;
@Action,这个注解对应<action>节点。这个注解可以应用于action类上,也可以应用于方法上。这个注解中有几个属性:
value(),表示action的URL,也就是<action>节点中的name属性;
results(),表示action的多个result;这个属性是一个数组属性,因此可以定义多个Result;
interceptorRefs(),表示action的多个拦截器。这个属性也是一个数组属性,因此可以定义多个拦截器;
params(),这是一个String类型的数组,它按照name/value的形式组织,是传给action的参数;
exceptionMappings(),这是异常属性,它是一个ExceptionMapping的数组属性,表示action的异常,在使用时必须引用相应的拦截器;
@Result,这个注解对应了<result>节点。这个注解只能应用于action类上。这个注解中也有几个属性:
name(),表示action方法的返回值,也就是<result>节点的name属性,默认情况下是【success】;
location(),表示view层文件的位置,可以是相对路径,也可以是绝对路径;
type(),是action的类型,比如redirect;
params(),是一个String数组。也是以name/value形式传送给result的参数;
实际上,struts2中的主要注解就是这些,当然了,还有上面提到的@interceptorRef和@exceptionMapping;基本上,掌握了这些注解就可以了。
但是如果想让这些注解真正工作,必须在配置文件增加几个常量的定义:
struts.convention.default.parent.package:这个常量表示缺省的包名是什么,因为在实际应用中,我们常常定义一个缺省的包,这个包中定义了一大堆的拦截器等等,然后其他的包继承自这个包。这个常量可以配也可以不配;
struts.convention.package.locators:这个常量表示你的action类的java包的包名的后缀是啥:比如action。这个常量也可以不配;
struts.convention.package.locators.basePackage:这个常量表示你的action类的java包package的名字是啥;这个常量也可以不配;
以上三个常量都是辅助作用的,为了让注解真正的工作,必须在配置文件中增加<package>节点的配置,至少是<package name="myPackage" extends="struts-default"
/>,这样注解就可以使用了。
Action
省略getters和setters
@ParentPackage("xystruts-default")
@Namespace("/login")
public class LoginAction extends BaseAction
{
private String verifyCode;
@Action(value = "login", results = { @Result(location = "/pages/main.jsp"), @Result(name = "login", location = "/pages/login.jsp")
})
public String login()
{
String sysVerifyCode = (String) getSession().get("verifyCode");
if (StringHelper.isEmpty(verifyCode) || !sysVerifyCode.equalsIgnoreCase(verifyCode))
{
addActionError("验证码错误");
return "login";
}
return "success";
}
@Action(value = "logout", results = { @Result(location = "/pages/login.jsp") })
public String logout()
{
Map session = getSession();
if (session != null)
session.clear();
return "success";
}
}
JSP
<form action="login/login.action"></form>
<a href="login/logout.action">登出</a>
其中Result注解中name属性为空,表示默认为"success"
常用注解如下
Namespace:指定命名空间
ParentPackage:指定父包
Result:提供了Action结果的映射(一个结果的映射)
Results:Result注解列表
ResultPath:指定结果页面的基路径
Action:指定Action的访问URL
Actions:Action注解列表
ExceptionMapping:指定异常映射(映射一个声明异常)
ExceptionMappings:一级声明异常的数组
InterceptorRef:拦截器引用
InterceptorRefs:拦截器引用组
以上注解详细:
@ParentPackage,这个注解对应了xml文件中的package节点,它只有一个属性叫value,其实就是package的name属性;
@Namespace,命名空间,也就是xml文件中<package>的namespace属性;
@Action,这个注解对应<action>节点。这个注解可以应用于action类上,也可以应用于方法上。这个注解中有几个属性:
value(),表示action的URL,也就是<action>节点中的name属性;
results(),表示action的多个result;这个属性是一个数组属性,因此可以定义多个Result;
interceptorRefs(),表示action的多个拦截器。这个属性也是一个数组属性,因此可以定义多个拦截器;
params(),这是一个String类型的数组,它按照name/value的形式组织,是传给action的参数;
exceptionMappings(),这是异常属性,它是一个ExceptionMapping的数组属性,表示action的异常,在使用时必须引用相应的拦截器;
@Result,这个注解对应了<result>节点。这个注解只能应用于action类上。这个注解中也有几个属性:
name(),表示action方法的返回值,也就是<result>节点的name属性,默认情况下是【success】;
location(),表示view层文件的位置,可以是相对路径,也可以是绝对路径;
type(),是action的类型,比如redirect;
params(),是一个String数组。也是以name/value形式传送给result的参数;
实际上,struts2中的主要注解就是这些,当然了,还有上面提到的@interceptorRef和@exceptionMapping;基本上,掌握了这些注解就可以了。
但是如果想让这些注解真正工作,必须在配置文件增加几个常量的定义:
struts.convention.default.parent.package:这个常量表示缺省的包名是什么,因为在实际应用中,我们常常定义一个缺省的包,这个包中定义了一大堆的拦截器等等,然后其他的包继承自这个包。这个常量可以配也可以不配;
struts.convention.package.locators:这个常量表示你的action类的java包的包名的后缀是啥:比如action。这个常量也可以不配;
struts.convention.package.locators.basePackage:这个常量表示你的action类的java包package的名字是啥;这个常量也可以不配;
以上三个常量都是辅助作用的,为了让注解真正的工作,必须在配置文件中增加<package>节点的配置,至少是<package name="myPackage" extends="struts-default"
/>,这样注解就可以使用了。
相关文章推荐
- struts中采用注解配置Action
- struts中采用注解配置Action
- struts中采用注解配置Action
- struts中采用注解配置Action
- Struts 注解配置例子及redirect,redirectAction,chain的区别
- [struts2]Struts2.2 Annotation 注解配置Action
- Struts 注解配置例子及redirect,redirectAction,chain的区别
- Struts2 注解配置Action(十九)
- struts2.2 Annotation 注解配置Action
- Struts 注解配置例子及redirect,redirectAction,chain的区别
- Struts 注解配置例子及redirect,redirectAction,chain的区别
- struts2.2 Annotation 注解配置Action
- Struts 注解配置例子及redirect,redirectAction,chain的区别
- struts2.2 Annotation 注解配置Action
- Struts 注解配置例子及redirect,redirectAction,chain的区别
- Struts2采用注解方式配置url和Action的映射
- struts2+mybatis3.1+spring3.0注解配置了action的servcie没有注解成功
- Struts2采用注解形式配置action
- Struts2.3.16+Spring3.2.8+Hibernate4.2.10全注解配置
- Struts2之两个Action传值和不传值的struts.xml文件配置