Struts2开发指南
来源:互联网 发布:营养配餐软件 编辑:程序博客网 时间:2024/06/01 08:41
关于struts2
struts2不是struts1的升级,而是继承的webwork的血统,它吸收了struts1和webwork的优势。
关于struts1与struts2的具体详细区别:
http://blog.csdn.net/john2522/article/details/7436307/
什么是struts2
Struts2是一个按照MVC模式设计的web层框架,其实Struts2就是一个filter,我们可以在web.xml文件中按照符合的要求将请求交给这个filter处理,这个filter再参照struts.xml配置文件将各个请求分别分配给不同的action去处理。
struts2工作原理
Struts2工作原理:1.当一个HttpServletRequest请求来了,先经过ActionContextCleanUp过滤器,清除Action环境,再经过其他的过滤器,例如说SiteMesh和用户自定义过滤器等等, 最后到达Struts2的核心过滤器StrutsPrepareAndExecuteFilter
2.此时,StrutsPrepareAndExecuteFilter会去找ActionMapping看此Action路径是否存在,如果存在,则会参照Struts.xml文件产生Action的代理,并且执行Action
3.Struts2很多功能是靠拦截器完成的,所以这个Action代理真正调用Action的处理请求的方法的时候会经过拦截器1,2,3,才真正调用Action的方法,Action方法结束后会返回一个视图,视图也会去参照ActionMapping,还会参照Template(JSP,FreeMarker)
4.此时,拦截器会再次拦截(说明Struts2的拦截器是进入Action和返回结果的时候都会拦截的,这比Filter好!),最后返回HttpServletResponse
struts2 开发步骤
- 新建web项目,添加struts2类库
- 配置web.xml文件
<display-name>Struts Blank</display-name> <filter> <!-- 配置Struts2核心Filter的名字 --> <filter-name>struts2</filter-name> <!-- 配置Struts2核心Filter的实现类 --> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> <init-param> <!-- 配置Struts2框架默认加载的Action包结构,可以没有。 --> <param-name>actionPackages</param-name> <param-value>org.apache.struts2.showcase.person</param-value> </init-param> <!-- 配置Struts2框架的配置提供者类 --> <init-param> <param-name>configProviders</param-name> <param-value>lee.MyConfigurationProvider</param-value> </init-param> </filter> <!-- 配置Filter拦截的URL --> <filter-mapping> <!-- 配置Struts2的核心FilterDispatcher拦截所有用户请求 --> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app>
3.编写jsp文件
http://jimingsong.iteye.com/blog/1582939 [struts2常用标签]
- 编写action
在Struts2中,一个Action类代表一次请求或调用,每个请求的动作都对应于一个相应的Action类,一个Action类是一个独立的工作单元。也就是,用户的每次请求,都会转到一个相应的Action类里面,由这个Action类来进行处理,因此一个Action类代表了用户的一次请求或调用。简单来说,Action就是用来处理一次用户请求的对象。
在此处至于Struts2中Action中是否需要实现Execute方法:
经过查找:
1)如果你的Action类是继承自ActionSupport或是BaseAction的话,确切的说是重写了execute方法,ActionSupport里的默认实现就是返回”success”视图。因此,你可以不实现execute方法,只要你的struts.xml里有”success”对应的result即可。
2)如果你的Action类没有继承ActionSupport或是BaseAction的话,而你又没有在struts.xml中对应标签中用method属性指定你自己的方法的话,默认就要找execute方法,这时是必须要实现execute方法的,否则Struts2会找不到对应的方法而报错。不过,大部分情况下都是继承ActionSupport的(比如输入验证、文件上传等功能就要求必须继承)。还有,不管你写没写execute方法,还是可以用标签的method属性指定其他方法的。
- 配置struts2.xml文件
不管Action采用何种实现方式,要正确运行,都需要在struts.xml中进行配置。
name:必填属性,用来指定包的名字。
extends:可选属性,用来指定该包继承其他包。继承其它包,可以继承其它包中的Action定义、拦截器定义等。
namespace:可选属性,用来指定该包的命名空间。
考虑到同一个Web应用中需要同名的Action,Struts2以命名空间的方式来管理Action,同一个命名空间不能有同名的Action。可以在不同包下建立同名的action。
参考文章:
http://blog.csdn.net/zz_mm/article/details/5460397
http://www.cnblogs.com/lyp3314/archive/2013/01/25/2876863.html
http://blog.sina.com.cn/s/blog_76b2c48101019rfj.html
- struts2开发指南
- struts2开发指南
- Struts2开发指南
- struts2 权威指南 struts2的开发规范与技巧
- 《struts2权威指南》学习笔记之struts2+jsf+spring+sitemesh集成开发
- 读《struts2权威指南》
- 读《struts2权威指南》
- struts2权威指南
- struts2漏洞升级指南
- 开发指南
- Java EE实用开发指南:基于Weblogic+EJB3+Struts2+Hibernate+Spring 高洪岩 配套源码下载地址
- Struts2权威指南总结3:Struts2基础
- Struts2权威指南总结4:深入struts2
- struts2开发
- struts2 开发
- iBatis指南、Hibernate指南、Spring开发指南
- iBatis指南、Hibernate指南、Spring开发指南
- PF_RING开发指南 安装指南
- Eclipse设置背景色、字体大小
- NSTimer 使用进阶
- 消息队列、OSS常用操作封装
- C# List.sort排序详解(多权重,升序降序)
- 【HDU】5420 Victor and Proposition【SCC+线段树】
- Struts2开发指南
- TensorFlow文档索引
- JavaScript 标签云
- jQuery.extend 函数详解
- Camel In Action 第四章 Camel中bean的使用
- view的模糊背景
- javascript字符串分割为数组
- java设计模式之代理模式(一)
- HDU 5952 Counting Cliques(我对暴力的理解还是不狗)