http://blog.csdn.net/qiluluwawa/article/details/8615719
1、Struts2是在WebWork2基础发展而来,也属于MVC框架,。
2、struts1和struts2编码风格几乎是不一样的
3、struts2有以下优点:
(1) Struts2没有跟Servlet API和struts API有着紧密的耦合,应用可以不依赖于ServletAPI和struts API,属于无侵入式设计,而Struts1却属于侵入式设计。
(2)Struts2提供了拦截器,利用拦截器可以进行AOP编程,实现如权限拦截等功能。
(3)Strut2提供类型转换器,可以把特殊的请求参数转换成需要的类型。在Struts1中,如果我们要实现同样的功能,就必须向Struts1的底层实现BeanUtil注册类型转换器才行。
(4) Struts2提供支持多种表现层技术,如:JSP、freeMarker、Velocity等
(5) Struts2的输入校验可以对指定方法进行校验,解决了Struts1长久之痛。
(6)提供了全局范围、包范围和Action范围的国际化资源文件管理实现
4、struts2的开发环境搭建步骤:
(1)找到开发Struts2应用需要使用到的jar文件.
下载struts2
下载地址 :http://struts.apache.org/download.cgi#struts238目前最高版本号:struts2.3.8
包括: struts-2.3.8-all.zip
struts-2.3.8-apps.zip Apps应用
struts-2.3.8-lib.zip Lib 类库文件
struts-2.3.8-docs.zip Docs 帮助文档
struts-2.3.8-src.zip Src 源代码
说明:all包含apps libdocs src
寻找jar文件解压struts-2.3.8-all.gz或struts-2.3.8-apps找到struts-2.3.8-all/struts-2.3.8/apps,将struts2-blank.war复制到tomcat中的webapps中启动tomcat (apache-tomcat/bin/startup.bat)找到即可。
如下图:
找到解压后的jar文件:apache-tomcat\webapps\struts2-blank\WEB-INF\lib
(2)编写Struts2的配置文件
Struts2 独有的配置文件:struts.xml文件
必须位于classes路径下面。开发项目的过程中 我们把它放到src路径下面 编译后就会存放到classes下面
(3)在web.xml中加入Struts2MVC框架启动配置
在web.xml文件配置 写读取struts.xml文件
配置:
2.1.3之前:org.apache.struts2.dispatcher.FilterDispatcher
2.1.3版本后:
<filter>
<filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
注意: struts2读取到struts.xml的内容后,以javabean形式存放在内存中,以后struts2对用户的每次请求处理将使用内存中的数据,而不是每次都读取struts.xml文件
Struts1(struts-config.xml)在web.xml文件中配置是一个servlet
5、Bug:
(1)java.net.BindException: Addressalready in use: JVM_Bind
分析:使用的tomcat被第二次 或是n次 启动 以前没有关闭导致的一个bug
解决方法:关闭 已经启动的tomcat即可。
(2)、http status 404-there is no action mapped foraction name demo.
分析:在服务器端找不到对应的demo的action
(3)、httpstatus 404-no result defined for action com.opersymphony.xwork2.ActionSupportand result success
分析:No result 没有结果 struts2所有的action基类
(4)、java.lang.NoSuchMethodException
分析:Execute方法名称写的不匹配
6、struts2+hibernate项目开发
(1)创建一个项目 web项目
(2)Struts2开发环境的搭建
1、引入需要的类库文件 jar
2、添加struts2的配置文件 struts.xml //src路径 :classespath:
3、在web.xml添加启动struts2 MVC框架的过滤器
如果你要整合struts2与hibernate共同开发项目的话 必须按照如下的操作
4、添加Hibernate所依赖的jar文件
(注意:如果Hibernate添加的jar文件与struts2添加jar文件 名称完全一致(只需其中之一)(版本不一致保留高本版) )
5、同样添加hibernate的配置文件(Classespath: src路径下面)
6、需要添加对应数据库操作的驱动文件jar