爲了給讀者展示一個HelloWorld示例,引導讀者在自己的計算機中搭建一個Struts 2開發環境。
針對讀者羣的不同,搭建環境也進行了分類:Java初學者可以使用最基本的開發環境,使用JDK和文本編輯器來學習Struts 2,這樣可以使初學者能夠更加深刻理解技術方面的細節所在,加深對Struts 2框架體系的認識,真正學會技術的精髓。
而對於有過Struts 1或者WebWork開發經驗的讀者,完全可以使用流行的IDE環境來學習開發,這樣會大大提高代碼編寫的效率,節省學習時間。另外,熟練的IDE使用能力也會讓讀者在實際開發工作中更好地融入開發團隊。
★ 提示 ★
筆者在這裏建議使用最基本的開發環境,這樣可以避免出現頻繁更換IDE集成開發工具帶來的困擾。
.......這裏有安裝jdk,tomcat等部分,此次省略........直接從安裝struts 2開始
2.1.4 安裝Struts 2
進入Struts 2的官方網站下載地址:http://struts.apache.org/download.cgi,界面如圖2.7所示。下載界面中有如面選擇:
Full Distribution:下載Struts 2的完整版。通常建議下載該選項。
Example Applications:下載Struts 2的示例應用,這些示例應用對於學習Struts 2有很大的幫助。
Blank Application only:僅下載Struts 2的空示例應用。
Essential Dependencies only:僅下載Struts 2的核心庫。
Documentation:僅下載Struts 2的相關文檔,包含Struts 2的使用文檔、參考手冊和API文檔等。
Source:下載Struts 2的全部源代碼。
Alternative Java 4 JARs:下載可選的JDK 1.4的支持JAR文件。
通常筆者建議下載Full Distribution版本,該版本已經包含了其他幾種安裝包,Struts 2安裝包只是一個簡單的壓縮文件,解壓即可。使用解壓軟件解壓後,目錄結構如圖2.8所示。
圖2.7 Struts 2下載界面
圖2.8 Struts 2目錄結構
該目錄結構內容如下:
apps:該文件夾下包含了基於Struts 2的示例應用,這些示例應用對於學習者是非常有用的資料。
docs:該文件夾下包含了Struts 2的相關文檔,包括Struts 2的快速入門、Struts 2的文檔,以及API文檔等內容。
j4:該文件夾下包含了讓Struts 2支持JDK 1.4的JAR文件。
lib:該文件夾下包含了Struts 2框架的核心類庫,以及Struts 2的第三方插件類庫。
src:該文件夾下包含了Struts 2框架的全部源代碼。
前面在描述Struts 2優點的時候已經說明,Struts 2的安裝是非常簡單的,只是將JAR文件複製到相應目錄即可。在讀者正確安裝好JDK和Tomcat後,可以通過簡單方式測試Struts 2是否可以正常運行。
如圖2.8所示的目錄結構是一個標準的Web應用結構,其中apps中包含了4個示例程序,分別是:struts2-blank-2.0.11.war、struts2-mailreader-2.0.11.war、struts2-portlet-2.0.11.war和struts2-showcase-2.0.11.war。
將struts2-blank-2.0.11.war文件拷貝到Tomcat相關目錄下。例如,筆者的Tomcat安裝目錄是:C:/Program Files/Apache Software Foundation/Tomcat 6.0,把示例應用壓縮包拷貝到C:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps目錄下,啓動Tomcat,會自動將struts2-blank-2.0.11.war文件解壓發佈。可以在Tomcat控制檯看到如下信息:
Feb 25, 2007 11:42:23 PM org.apache.coyote.http11.Http11BaseProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Feb 25, 2007 11:42:24 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Feb 25, 2007 11:42:24 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/141 config=null
Feb 25, 2007 11:42:24 PM org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
Feb 25, 2007 11:42:24 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 6672 ms
Feb 25, 2007 11:52:55 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive struts2-blank-2.0.11.war
由此說明struts2-blank-2.0.11.war應用壓縮包被成功發佈。在瀏覽器中輸入:http://localhost:8080/struts2-blank-2.0.11/example/HelloWorld.action,會返回Struts的應用示例界面,如圖2.9所示,說明Struts 2環境搭建成功。
圖2.9 Struts 2示例界面
安裝Struts 2的一般步驟是把lib目錄下的相關JAR文件拷貝到Web的lib目錄中,同時修改Web應用的web.xml文件,添加Struts 2的配置。一般普通的Web應用目錄結構如下:
Web應用名稱(如Bank):
|-------WEB-INF
|-classes
|-lib
|-web.xml
|-index.jsp
將commons-logging-1.0.4.jar、freemarker-2.3.8.jar、ognl-2.6.11.jar、struts2-core-2.0.11.jar和xwork-2.0.4.jar文件拷貝到Web應用的lib目錄下。
★ 說明 ★
Struts 2的lib目錄中包含有幾個插件JAR文件,在沒有配置插件之前,不要拷貝到Web應用的lib目錄下,否則會出現錯誤。
在web.xml文件中加入如代碼2.1所示的內容。
代碼2.1 Struts 2示例的web.xml配置文件
<filter>
<!-- 配置核心過濾器 -->
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<!-- 攔截所有URL用戶請求 -->
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
另外,需要在classes目錄下建立一個struts.xml配置文件,示例中該文件內容如代碼2.2所示。
代碼2.2 Struts 2示例的struts.xml配置文件
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 配置常量 -->
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<!-- 配置開發模式爲false -->
<constant name="struts.devMode" value="false" />
<include file="example.xml"/>
<!-- 增加包配置 -->
</struts>
到這裏,一個基本的Struts 2框架的Web應用已經完成,目錄基本結構如下:
|-------WEB-INF
|-classes
|-struts.xml
|-lib
|-commons-logging-1.0.4.jar
|-freemarker-2.3.8.jar
|-ognl-2.6.11.jar
|-struts2-core-2.0.11.jar
|-xwork-2.0.4.jar
|-web.xml
|-index.jsp
讀者只要建立了類似於該目錄結構的Web項目,就可以發佈到Web應用服務器,如Tomcat、JBoss、WebLogic等,並不需要特別的設置,只要拷貝到相應發佈目錄即可。
2.1.5 Eclipse安裝Struts 2
Eclipse是流行的開發工具,具有靈活的插件安裝功能,不過到目前爲止,筆者還沒有找到關於Struts 2的相應插件,相信不久就會出現。不使用插件,在Eclipse中也可以非常方便地配置Struts 2開發環境。接下來的步驟就是在Eclipse中安裝Struts 2。
啓動Eclipse,新建一個Web項目Struts_HelloWorld,如圖2.10所示。
圖2.10 建立一個Web項目
建好Struts2_HelloWorld項目後,單擊“新建”菜單,建立一個Server,如圖2.11所示。在建立Server過程中,Eclipse會提示輸入Tomcat 6的安裝主目錄,筆者設置爲:C:/Program Files/Apache Software Foundation/Tomcat 6.0。
成功建立Server後,需要將Struts 2的相關JAR粘貼到Web項目的lib目錄中,進入Struts 2的lib目錄,選擇將要粘貼的JAR文件後選擇“複製”命令,如圖2.12所示。
圖2.11 建立一個Server
圖2.12 選擇JAR文件
轉到Eclipse窗口,在“Project Explorer”子窗口中選中Struts2_HelloWorld/ WebContent/WEB-INF/lib,然後在右鍵菜單中選擇“粘貼”命令。經過Eclipse自動刷新“Project Explorer”子窗口,剛纔所粘貼的JAR文件應該會出現在Struts2_HelloWorld/Java Resources:src/Libraries/Web App Libraries下,如圖2.13所示。
在Java Resources:src目錄下建立一個struts.xml配置文件,可以選擇“新建|other| General|文件”,輸入struts.xml作爲文件名。可以輸入Struts 2詳細配置數據,讀者會在後面內容中掌握。
圖2.13 Eclipse配置Struts 2
需要對項目中默認的web.xml文件進行修改,修改後的內容如代碼2.3所示。
代碼2.3 修改web.xml配置文件
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Struts 2.0 Hello World</display-name>
<!— 配置filter-- >
<filter>
<!-- 配置核心過濾器 -->
<filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<!-- 攔截所有URL用戶請求 -->
<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>
Web應用的部署。右鍵單擊“Struts_HelloWorld|Export|WAR file”。單擊“Export|WAR file”菜單,出現如圖2.14所示的對話框,選擇“Web|WAR file”。
單擊“Next”按鈕,出現如圖2.15所示的對話框,輸入WAR文件的路徑(如%tomcat%/webapps/Struts2_HelloWorld.war),單擊“Finish”按鈕應用發佈完成。
到此爲止,Eclipse環境下的Struts 2框架安裝就完成了。由於沒有Struts 2相關插件,一些配置代碼還不會自動生成,不過Struts 2配置起來很簡單,並沒有給開發者帶來很大的麻煩。
後面的開發示例,一般是在JDK環境下完成的,不過讀者也可以使用Eclipse來進行編譯和部署,並不用進行特別的改動。
圖2.14 選擇發佈類型
★ 說明 ★
如果使用Eclipse作爲開發工具,需要安裝MyEclipse或者Lombo插件來支持Web開發。筆者使用MyEclipse作爲開發工具,讀者可以下載安裝MyEclipse,建議下載完整版的MyEclipse,安裝方法與Eclipse一致。
圖2.15 選擇發佈位置