标签:annotation struts2
Hibernate和Spring框架的开发前边总结了,这次看一下流行的MVC流程框架Struts2的注解开发吧。Struts2主要解决了从JSP到Action上的流程管理,如何进行Uri和action类中每个方法的绑定这是重点,在这里先简单看一下配置文件中的简单配置:
-
<span style="font-size:18px;">
-
<package name="orgPackage" namespace="/org" extends="struts-default">
-
-
<action name="index" class="orgAction" method="index">
-
<result name="success" type="dispatcher">/jsp/org/index.jsp</result>
-
</action>
-
</package>
-
</span>
感觉Struts2的配置还是比较麻烦的,需要我们配置每一个action中的每一个方法进行配置,当然了,这里也可以通过通配符*的方式进行简化。但是每个类都需要遵循规则。这里看一下Struts2注解的开发吧!
一,引入支持Struts2支持注解开发jar包:
struts2-convention-plugin-2.1.8.1.jar(支持Struts2框架注解开发的jar包)
二,Struts2使用注解开发需要遵循一些规范:
1,Action要必须继承ActionSupport父类;
2,Action所在的包名必须以 .action 结尾。
三,action中常用的注解:
1,@ParentPackage:对应xml配置文件中的package的父包,一般需要继承struts-default。
2,@Namespace:对应配置文件中的nameSpace,命名空间。
3,写在方法前边的注解:
-
@Action,这个注解对应<action>节点
- value(),表示action的请求名称,也就是<action>节点中的name属性;
- results(),表示action的多个result;这个属性是一个数组属性,因此可以定义多个Result;
- interceptorRefs(),表示action的多个拦截器。这个属性也是一个数组属性,因此可以定义多个拦截器;
- exceptionMappings(),这是异常属性,它是一个ExceptionMapping的数组属性,表示action的异常,在使用时必须引用相应的拦截器
4,看一下action中最常用的results中单个result注解的配置吧:
- @Result,这个注解对应了<result>节点。这个注解只能应用于action类上。这个注解中也有几个属性:
- name(),表示action方法的返回值,也就是<result>节点的name属性,默认情况下是【success】;
- location(),表示view层文件的位置,可以是相对路径,也可以是绝对路径;
- type(),是action的类型,比如redirect,不指定情况下,框架默认的是dispatcher
这些注解基本上就可以完成我们的功能了,通过这样注解开发,可以代替配置xml的编写。下边我们来看一个使用注解开发的action的实例:
-
<span style="font-size:18px;">@Controller
-
@Scope("prototype")
-
@ParentPackage("struts-default")
-
@Namespace(value="/user")
-
public class LoginAction extends ActionSupport{
-
-
@Resource
-
private User user;
-
-
@Action(
-
value="login",
-
results={
-
@Result(name="success",location="/success.jsp",type="redirect"),
-
@Result(name="login",location="/login.jsp",type="redirect"),
-
@Result(name="error",location="/error.jsp",type="redirect")
-
},
-
interceptorRefs={
-
@InterceptorRef("defaultStack"),
-
@InterceptorRef("timer")
-
},
-
exceptionMappings={
-
@ExceptionMapping(exception="java.lang.Exception",result="error")
-
}
-
)
-
public String login() throws Exception {
-
-
int i = 1/0 ;
-
-
if ("admin".equals(user.getUsercode()) && "admin".equals(user.getUserpswd())) {
-
-
Map session = ActionContext.getContext().getSession();
-
session.put("session_user", user);
-
-
return "success";
-
} else {
-
return "login";
-
}
-
-
}
-
}
-
</span>
综上,为Struts2框架中注解的开发。三大框架都利用注解开发,和配置文件开发,效率会大大提升的。各种框架,jar包等新的版本现在都是支持注解开发的,不断的学习,不断的优化,不断提高效率,注解开发利弊并存着,我们要懂的扬长避短,让每个框架,每种思想的优点都来为我们开发即可。Annotation(四)——Struts2注解开发
标签:annotation struts2
原文地址:http://blog.csdn.net/lovesomnus/article/details/40954965