2010年9月2日 星期四

Google App Engine 教學 06 -- 替你的 app engine 加上 Struts 1.3

前篇文章已經教您如何使用 eclipse 建立一個 app engine 的程式,
這篇文章則是要教您如何整合還蠻常使用的  MVC 網頁框架 struts
如果您要使用其他的網頁框架,如 spring ... 等
您可以參考下列這篇文章(will it play in app-engine)

至於如果您要了解甚麼是 MVC 架構,或是什麼是 struts
則您可以參考下列的文章,小橘覺得寫的還相當不錯。
Struts 學習筆記

這邊文章小橘只大略簡述,如何使整合 struts 到我們先前所建立的 app engine 專案中。

首先,我們前往 http://struts.apache.org/download.cgi#struts1310

下載我們所需的檔案,這裡我們下載(struts-1.3.10-all.zip)這個檔案

Full Distribution:

下載完成之後,將其解壓縮。
我們只需解壓縮出 zip檔中 apps 目錄下的 struts-blank-1.3.10.war 這個檔案即可。
接著我們將 struts-blank-1.3.10.war 解壓縮(您可以將附檔名改成zip,rar),
之後便可以利用解壓縮軟體,將其中的資料解壓縮出來。
壓縮檔的內容如下圖所示.....




















要讓 app engine 能夠跑 Struts 我們必須在 eclipse 中include 相關聯的 library
所以,我們將 WEB-INF 目錄底下, lib 目錄中的所有檔案解壓縮出來,























並利用檔案管理員,將檔案複製到 eclipse 專案目錄下相對應的位置
這裡我們以 test 專案為例, 必須將剛剛那些檔案放在
test\war\WEB-INF\lib 下,對應位置請參考下圖



















接下來,我們將壓縮檔中 WEB-INF 底下的三個檔案
複製eclipse 專案中  test\war\WEB-INF\ 目錄下
您可以用檔案管理員的方式複製,
也可以用拖曳的方式,如下圖
















由於app engine 專案目錄中,原本就已經存在 web.xml
所以應該會跳出下列檔案複寫的警告,請放心的按下 YES

















然後呢,我們再將  struts-blank-1.3.10.war 壓縮檔中
pages 這個目錄,和index.jsp 檔案拖曳(複製)到專案中的 war 目錄下





















最後!! 我們將 struts-blank-1.3.10.war\WEB-INF\classes 底下的 MessageResources.properties
拖曳(複製)到專案目錄的 src 底下,到這裡我們就初步完成檔案複製的動作。


















不過小橘!!!  好像是完成了,但為什麼我完成的樣子跟小橘不一樣呢?
我的專案中,圖示前面有些都有一些小XX (如下圖)






















如果出現紅色的 XX 通常是表示eclipse提醒你,專案中的檔案有誤,
可能有錯誤,或是有一些library 沒有 include 進來。
這時你必須檢查您的 JAVA 是否有裝 JDK 版本,
或是 eclipse 中 JAVA Build Path 中是否指定為 jre
如下圖,(屬性的視窗可以利用功能列中 Project ---> Properties 的選單呼叫出來)



















當發現是 jre6 時你可以按下列步驟更改為 JDK
























































JDK 的目錄通常是在 C:\Program Files\Java 目錄下
如果您是 64bit 的OS 則有可能在
C:\Program Files (x86)\Java  下



















接下來就是一直按 OK Finish 把先前開出來的視窗確認,就可以了。
完成之後,剛剛檔案前面的紅色XX 應該就消失了(如下圖)
























@ 接下來我們必須調整一下 app engine 的設定,使得app engine可以執行 Struts
     因為 Struts 預設支援  session 所以我們必須將  appengine-web.xml  多加入一行
     <sessions-enabled>truesessions-enabled>
     位置如下圖所示...
















最後,應該已經沒有問題了。您可以放心的按下 工具中的 Run 綠色按鈕
在 console 您應該會看到  類是下列的輸出
2010/9/2 上午 12:53:12 com.google.appengine.tools.development.DevAppServerImpl start
資訊: The server is running at http://localhost:8888/

您可以在瀏覽器輸入 http://localhost:8888/
測試看看,struct 專案是否已經正確的執行
如看到 下圖,
並發現網址已經被轉到 http://localhost:8888/Welcome.do
















就表示您的 Struts 建置環境已經設定成功了喔  ^^

( 其實!! 還是有些問題的
  如果你開始自己在src 目錄中 建立 action 、 actionForm 等 JAVA 檔案
  你就會發現,剛剛小紅 XX 又會出現了)

至於要怎麼解呢? 先提示一下,其實您只要在 Java Build Path 中
include 剛剛放在  test\war\WEB-INF\lib  Struts 所用到的 jar 檔案即可
聰明的你應該沒問題的 !!!

先教學到這邊囉 ^^

改天再來教大家如何建立 自己的 action  actionForm
並實作一個簡單的 Struts 範例,讀取HTML網頁中表單所送出的值,
並將該值返回給使用者。

沒有留言: