学习struts2的经历是悲惨的。
先说下悲惨的经历:首先是在网上找教程时使用了"structs2",多写了一个'c'字母,然而,这个世界上粗心的人太多。后来找到了张孝祥老师的struts1.2教程,大概看了一下,了解到struts2和struts1.2是有本质区别的。
于是,下载struts2的较新版本
struts-2.2.3-all.rar 。先尝试看看其提供的入门教程。发现和实际情况有点不符合,可能是老外和我们用的开发工具有些差别,ant我也不会。于是,我没法跟着官方提供的教程一步步做。
后来,就找到了itcast struts2的教程,本以为终于有大神解救,于是根据教程尝试搭建环境和写个hello world。问题在这个时候来了。
itcast struts2教程中说必须包括的jar为6个,struts2.2.3官方文档中说必须包括的jar为以下9个:
- commons-fileupload-X.X.X.jar
- commons-io-X.X.X.jar
- commons-logging-X.X.X.jar
- commons-logging-api.X.X.jar
- freemarker-X.X.X.jar
- ognl-X.X.X.jar
- struts2-core-X.X.X.X.jar
- xwork-core-X.X.X.jar
- javassist-3.7.ga.jar (new for Struts versions 2.2.1 and higher)
但是我添加了这9个jar后依然遭遇以下错误:
Error:
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.StringUtils
于是,继续google,找到的答案是:http://zqc-0101.iteye.com/blog/1118783
Exception starting filter struts2
java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils...
可能是缺少commons-lang-x.x.jar和commons-fileupload-x.x.x.jar包
于是我添加了commons-lang-x.x.jar包,重新启动myeclipse自带的tomcat成功。
至此,第一个demo也就成功运行了。
当然期间还遇到了以下错误:
警告: Could not
create JarEntryRevision for
[jar:file:/C:/MyEclipse%208.5/.metadata/.me_tcat/webapps/struts2test/WEB-INF/lib/struts2-core-2.2.3.jar]!
java.lang.NoClassDefFoundError:
org/apache/commons/io/FileUtils
严重: Exception
starting filter struts2test
java.lang.NoClassDefFoundError:
org/apache/commons/lang/StringUtils
我将在下文详细描述完成一个hello struts2的过程。
教程测试环境:Myeclipse 8.5 (以及其自带的Tomcat 6.0.13,JDK 1.6)
Step 1 - Create A Basic Java Web Application项目名:hellostruts
Step 2 - Add Struts 2 Jar Files To Class Path
Find and copy to WEB-INF\lib these files (note X.X.X.X.jar refers to the version number):
- commons-fileupload-X.X.X.jar
- commons-io-X.X.X.jar
- commons-logging-X.X.X.jar
- commons-logging-api.X.X.jar
- freemarker-X.X.X.jar
- ognl-X.X.X.jar
- struts2-core-X.X.X.X.jar
- xwork-core-X.X.X.jar
- javassist-3.7.ga.jar (new for Struts versions 2.2.1 and higher)
- common-lang-x.x.x.jar
添加后如下图:
Step 3 - Add Struts 2 Servlet Filter在WEB-INF/web.xml中添加以下代码:
- <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>
完整的web.xml代码为:
- <?xml version="1.0" encoding="UTF-8"?>
-
<web-app version="2.5"
-
xmlns=""
-
xmlns:xsi=""
-
xsi:schemaLocation="
-
/web-app_2_5.xsd">
-
<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>
-
<welcome-file-list>
-
<welcome-file>index.jsp</welcome-file>
-
</welcome-file-list>
-
</web-app>
Step 4 - Create struts.xml在src目录中新建一个struts.xml 其内容为:
- <?xml version="1.0" encoding="UTF-8"?>
-
<!DOCTYPE struts PUBLIC
-
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
-
"">
-
<struts>
-
<constant name="struts.devMode" value="true" />
-
-
</struts>
具体解释可以参考前面提到的itcast的教程。至此,struts2的环境就搭建好了。
在myeclipse中部署该项目启动tomcat。
Hello World Using Struts 2请参看此教程。
以下奉上实例源码:
hellostruts.part1.rar hellostruts.part2.rar hellostruts.part3.rar
阅读(2627) | 评论(0) | 转发(0) |