Struts2框架学习(二) Action
2016-06-30 16:04
375 查看
转载地址:http://blog.csdn.net/lishuangzhe7047/article/details/22120077
Struts2框架中的Action类是一个单独的javabean对象。不像Struts1中还要去继承HttpServlet,耦合度减小了。
1,流程
拦截器拦截请求,创建代理Action对象,执行方法,返回结果,界面跳转。
拦截器解析请求路径,获取Action的名称,到配置文件中查找action的完整类名,利用反射创建对象。
每请求一次,就创建一个对象,所以action是多例的,也是线程安全的。
2,关系
请求的路径和配置文件的对应关系:
配置文件中包的命名空间namespace的值和action的name值,如上图/user/login加上后缀.action 路径,映射访问com.lsz.struts2.action包中的LoginActin类中的login方法。
方法的返回字符串和result结果对应关系:
Action类的result和方法中return结果对应,如果有一个返回结果,对应配置一个result标签,如果有两个返回结果,需要配置两个标签。result标签的name值要和方法中返回的字符串一致。
3,方法要求
一定要是public类型的,而且返回为String类型的,方法为无参数的。
4,Action类和ActionProxy,ActionInvocation类的关系
ActionProxy是Action的代理类,通过解析配置文件获取Action类中名称和完整路径,利用反射机制创建的。
ActionInvocation是Action类的调用者,反射创建的ActionProxy类就存在ActionInvocaiton类中。
Struts2框架中的Action类是一个单独的javabean对象。不像Struts1中还要去继承HttpServlet,耦合度减小了。
1,流程
拦截器拦截请求,创建代理Action对象,执行方法,返回结果,界面跳转。
拦截器解析请求路径,获取Action的名称,到配置文件中查找action的完整类名,利用反射创建对象。
每请求一次,就创建一个对象,所以action是多例的,也是线程安全的。
2,关系
请求的路径和配置文件的对应关系:
配置文件中包的命名空间namespace的值和action的name值,如上图/user/login加上后缀.action 路径,映射访问com.lsz.struts2.action包中的LoginActin类中的login方法。
方法的返回字符串和result结果对应关系:
Action类的result和方法中return结果对应,如果有一个返回结果,对应配置一个result标签,如果有两个返回结果,需要配置两个标签。result标签的name值要和方法中返回的字符串一致。
3,方法要求
一定要是public类型的,而且返回为String类型的,方法为无参数的。
4,Action类和ActionProxy,ActionInvocation类的关系
ActionProxy是Action的代理类,通过解析配置文件获取Action类中名称和完整路径,利用反射机制创建的。
ActionInvocation是Action类的调用者,反射创建的ActionProxy类就存在ActionInvocaiton类中。
相关文章推荐
- Java集合详解系列----Java集合继承体系详解
- javaweb 写mysql数据库中文乱码
- Spring Security 和 Angular JS(1)
- Struts2框架学习(一)
- Spring 配置中的 default-lazy-init="false"
- Java迭代器
- RxJava(10-操作符原理&自定义操作符)
- RxJava(10-操作符原理&自定义操作符)
- SpringMVC学习系列(8) 之 国际化
- Spring框架 教程
- Struts2 继承ActionSupport的用处
- java字符串截取相关方法
- Java_数组
- weblogic部署java.lang.ExceptionInInitializerError问题
- SpringMVC学习系列(7) 之 格式化显示
- Ubuntu15.04下配置Android开发环境(安装JDK1.8.0-91和Android Studio)
- Struts2学习(九)—拦截器之登录权限
- struts2 url传参中文乱码
- Java适合用于ETL?
- Eclipse-设置启动JDK版本