由於struts2框架在eclipse中還沒有像struts1.x那樣的被很好支持。我們使用該框架的時候都需要手工搭建開發環境,其實想想這何嘗不是一種好事,特別對於初學者。在手工搭建Struts2開發環境的時候,可以按如下步驟進行(個人觀點):
1、新建一個WEB項目。
2、往“WEB項目根目錄/WEB-INF/LIB/”中導入struts2所需的jar包,如下所示(版本號可能不同),在此有一個注意事項,等下我會提到。
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.9.jar
xwork-2.0.4.jar
3、往“WEB項目根目錄/WEB-INF/classes/”中新建struts2所需的struts.xml文件(如下所示:)。
2<!DOCTYPE struts PUBLIC
3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
4 "http://struts.apache.org/dtds/struts-2.0.dtd">
5
6<struts>
7</struts>
8
4、修改web.xml文件,所下所示(就是增加一個filter):
2<web-app version="2.4"
3 xmlns="http://java.sun.com/xml/ns/j2ee"
4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
6 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
7 <filter>
8 <filter-name>struts2</filter-name>
9 <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
10 </filter>
11 <filter-mapping>
12 <filter-name>struts2</filter-name>
13 <url-pattern>/*</url-pattern>
14 </filter-mapping>
15</web-app>
16 5、到此,開發環境就搭建好了,餘下工作就看你自己的了。你可以在上面盡情揮灑你的舞姿。
注意事項:也許初學struts2朋友們經常會碰到struts2導包問題,因爲初學者不是很瞭解到底哪些包是必須的,哪些是可選的,所以盲目的把全部JAR包導入進來,但實際你這樣做會出現問題,全部導入後,會發生衝突,部署項目時,將會出現如下錯誤,項目將無法啓動:
22007-3-21 17:37:29 org.apache.catalina.core.StandardContext filterStart
3嚴重: Exception starting filter struts2
4Unable to load bean: type:com.opensymphony.xwork2.ObjectFactory class:org.apache.struts2.spring.StrutsSpringObjectFactory - bean - jar:file:/C:/Program%20Files/tomcat5.5.23/webapps/Hello/WEB-INF/lib/struts2-spring-plugin-2.0.6.jar!/struts-plugin.xml:8:132
5at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:209)
6at org.apache.struts2.config.StrutsXmlConfigurationProvider.register(StrutsXmlConfigurationProvider.java:101)
7..
8Caused by: java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContextAware
9at java.lang.ClassLoader.defineClass1(Native Method)
10at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
11
122007-3-21 17:37:30 org.apache.catalina.core.StandardContext start
13嚴重: Error filterStart
142007-3-21 17:37:30 org.apache.catalina.core.StandardContext start
15嚴重: Context [/Hello] startup failed due to previous errors
162007-3-21 17:37:30 com.opensymphony.xwork2.util.ObjectTypeDeterminerFactory
17
解決的辦法是:我們開始只需導入上面提到的五個包則可,後面在實際的項目中如果要用到別的包時再加入,並在配置上做相應的調整。