Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2531090
  • 博文数量: 245
  • 博客积分: 4125
  • 博客等级: 上校
  • 技术积分: 3113
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-25 23:56
文章分类

全部博文(245)

文章存档

2015年(2)

2014年(26)

2013年(41)

2012年(40)

2011年(134)

2010年(2)

分类: Java

2011-07-19 16:40:13

学习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个:
  1. commons-fileupload-X.X.X.jar
  2. commons-io-X.X.X.jar
  3. commons-logging-X.X.X.jar
  4. commons-logging-api.X.X.jar
  5. freemarker-X.X.X.jar
  6. ognl-X.X.X.jar
  7. struts2-core-X.X.X.X.jar
  8. xwork-core-X.X.X.jar
  9. 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):

  1. commons-fileupload-X.X.X.jar
  2. commons-io-X.X.X.jar
  3. commons-logging-X.X.X.jar
  4. commons-logging-api.X.X.jar
  5. freemarker-X.X.X.jar
  6. ognl-X.X.X.jar
  7. struts2-core-X.X.X.X.jar
  8. xwork-core-X.X.X.jar
  9. javassist-3.7.ga.jar (new for Struts versions 2.2.1 and higher)
  10. common-lang-x.x.x.jar
添加后如下图:



Step 3 - Add Struts 2 Servlet Filter在WEB-INF/web.xml中添加以下代码:
  1. <filter>
  2.   <filter-name>struts2</filter-name>
  3.   <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  4. </filter>

  5. <filter-mapping>
  6.   <filter-name>struts2</filter-name>
  7.    <url-pattern>/*</url-pattern>
  8. </filter-mapping>
完整的web.xml代码为:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5"
  3.     xmlns=""
  4.     xmlns:xsi=""
  5.     xsi:schemaLocation="
  6.     /web-app_2_5.xsd">
  7. <filter>
  8.   <filter-name>struts2</filter-name>
  9.   <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  10. </filter>

  11. <filter-mapping>
  12.   <filter-name>struts2</filter-name>
  13.    <url-pattern>/*</url-pattern>
  14. </filter-mapping>
  15.   <welcome-file-list>
  16.     <welcome-file>index.jsp</welcome-file>
  17.   </welcome-file-list>
  18. </web-app>

Step 4 - Create struts.xml在src目录中新建一个struts.xml  其内容为:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  4.     "">
  5.    <struts>
  6.    <constant name="struts.devMode" value="true" />
  7.   
  8.    </struts>
具体解释可以参考前面提到的itcast的教程。至此,struts2的环境就搭建好了。
在myeclipse中部署该项目启动tomcat。

Hello World Using Struts 2请参看此教程。


以下奉上实例源码:
 hellostruts.part1.rar    hellostruts.part2.rar    hellostruts.part3.rar  


阅读(2590) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~