摘要:
這是我翻譯的 Myeclipse 的一篇關(guān)于創(chuàng )建 Struts 應用的文檔。粗略的翻譯,有些我翻譯不了或者認為沒(méi)有必要的就刪去了。我的表達能力差,翻譯起來(lái)更差勁。讀文檔的時(shí)候,感覺(jué)很順利,很輕松,于是就想試著(zhù)翻譯一下,可是一旦做起來(lái),才發(fā)現很難。有些句子的意思很明白,可是一旦轉化成中文的時(shí)候,感覺(jué)就在嘴邊打轉,可是又吐不出來(lái)。真難受呀。好不容易湊成了一篇,也就貼出來(lái)了。讀著(zhù)讀著(zhù)發(fā)現自己都讀不下去了。呵呵,慢慢來(lái),總會(huì )好的 正如我對自己的評說(shuō):一切正向著(zhù)好的方向前進(jìn),盡管很慢。
目錄:
1 序
2 介紹
3 必備
4 構造一個(gè)新項目
5 開(kāi)始一個(gè) Struts 項目
• Struts 項目的組件
• 搭建應用程序
6 運行
7 總結
正文:
1. 序
此文檔適應 Sun JDK 1.4.2, Eclipse 3.0.1 and MyEclipse 3.8.2. 環(huán)境。所有的屏幕截圖都是基于 Eclipse, MyEclipse Enterprise Workbench, and Windows XP 的默認用戶(hù)接口設置。如果你在使用這個(gè)文檔的過(guò)程中遇到困難,請看用戶(hù)反饋部分,以反饋給 MyEclipse documentation team 。
2. 說(shuō)明
在這個(gè)用戶(hù)指南中我們將通過(guò) MyEclipse Enterprise Workbench 來(lái)開(kāi)發(fā)和測試一個(gè)簡(jiǎn)單的 Struts 示例應用。這并不需要我們具有 Struts 或者 MyEclipse 的預備知識。
3. 必備工具
JDK 1.4+ (Sun or IBM)
http://java.sun.com/j2se/downloads/index.html
Eclipse 3.0.x SDK
http://www.eclipse.org/downloads/index.php
MyEclipse 3.8.2
http://www.myeclipseide.com/ContentExpress-display-ceid-10.html
Tomcat 5.0.x ( 首選 5.0.28 P referred, 或其他 Servlet/EJB 容器 )
http://apache.xtelli.net/jakarta/tomcat-5/v5.0.28/bin/jakarta-tomcat-5.0.28.exe
4. 構造一個(gè)新項目
為了有效的組織我們的開(kāi)發(fā),我們需要在添加了 Struts Capabilities 的 MyEclipse 中創(chuàng )建一個(gè)新的 Web Module Project 。 你可以創(chuàng )建一個(gè) web project 通過(guò)菜單 File > New > Other > Project > J2EE > Web Project ,如下圖所示

圖 1--- 新建 Web Project 對話(huà)框
然后鍵入關(guān)于新項目的所有信息 ,如下圖:

圖 2 ---- 設置 Web Project
一旦創(chuàng )建了 Web Project ,我們需要為 MyEclipse 添加 Struts Capabilities 。這可以通過(guò)右擊 Package Explorer 視圖中 項目的名稱(chēng),并且依次選擇 MyEclipse > Add Struts Capabilities 做到。如下面圖示:

圖 3 :在 Web Project 中 添加 Struts Capabilities
對這個(gè)應用來(lái)說(shuō), Struts 對話(huà)框的默認值已經(jīng)很適合了。但是,你可以改變 Base package for new classes 來(lái)適應你的情況。如下圖 4 所示,我們只是簡(jiǎn)單的保留這些默認值。

圖 4---- 配置 Struts Capabilities
當完成上面的步驟,項目的結構會(huì )如下圖 5 所示

圖 5 ---- 配置后的項目結構視圖
現在我們已經(jīng)成功地創(chuàng )建完項目,然后可以開(kāi)始構建 web 的內容了,現在轉入下一步。
5. 開(kāi)始一個(gè) Struts 項目
這一部分我們將要集中創(chuàng )建一個(gè) Struts 應用示例,這個(gè)實(shí)力是在模仿一個(gè)簡(jiǎn)單的網(wǎng)站登錄屏幕。所以,僅需要 2 個(gè) Jsp 頁(yè)面,一個(gè)提示用戶(hù)登錄,另一個(gè)簡(jiǎn)要的說(shuō)明登錄成功。我們分別命名這 2 個(gè) jsp 頁(yè)面為 userLogin.jsp 和 userL oginSuccess.jsp 。 如果用戶(hù)試圖登錄時(shí)存在授權錯誤,將直接指導用戶(hù)返回 LoginUser.jsp 并且顯示錯誤信息。
一般來(lái)說(shuō),當開(kāi)始一個(gè) Struts 項目的時(shí)候,設計好應用的流程是很有用的。這樣,開(kāi)發(fā)團隊就會(huì )對項目中所有元素的組合有一個(gè)更好的認識。創(chuàng )建流程最容易的方法就是通過(guò)使用 Struts 圖形化設計模式。 Struts 編輯器提供了一個(gè)可以拖放工具,它可以使你通過(guò)快速的復制頁(yè)面流程來(lái)構造應用。這個(gè)應用示例 Login 的流程就如下圖 6 所示

圖 6 ----- 應用程序的流程
我們可以從上面的設計視圖中看到此應用開(kāi)始于 userLogin.jsp 頁(yè)面的顯示。此登錄頁(yè)將要調用 userLogin 動(dòng)作( action )來(lái)執行用戶(hù)的登錄操作。如果出現驗證錯誤或問(wèn)題, userLogin action 將引導用戶(hù)返回 userLogin.jsp 頁(yè)面。然而,如果登錄成功,應用將轉向 userLoginSuccess.jsp 頁(yè)面。
5.1 Struts 項目的組件
一個(gè)典型的 Struts 項目會(huì )包括以下組件
JSPs
Actions
ActionForwards*
ActionForms**
Struts 部署文件 : struts-config.xml
在 MyElcipse 中可以通過(guò) 3 個(gè)不同的方法創(chuàng )建所有組件或者其中一個(gè)組件(除了 struts-config.xml )
方法 1 :使用菜單 File > New > Other... > J2EE > Struts 1.1 (or 1.0) , 如下圖:

圖 7
對話(huà)框將直接引導你并且提示你所有被 Struts 組件支持的值。一些部件要比其他的復雜。例如:如下圖 8 所示的對話(huà)框,你可以看到 Struts Action 支持的所有特征已經(jīng)被賦予了容易理解的值

圖 8----- 對話(huà)框:創(chuàng )建新的 Struts Action
方法 2 :使用 Outline 視圖。從此視圖中,你可以通過(guò)右擊任何一個(gè)組件類(lèi)型彈出菜單來(lái)創(chuàng )建此類(lèi)型的新組件。圖 9 如下:

圖 9----Outline 視圖
方法 3 : Struts 圖形化編輯器(如下圖 10 )也是一個(gè)創(chuàng )建 Struts 組件的方便之路。打開(kāi) struts-config.xml 文件,單擊編輯器下面的 Design 標簽就可以打開(kāi) Struts 圖形化編輯器

圖 10----- 打開(kāi) Struts 圖形化編輯器:
然后轉到如下圖 11 所示的編輯模式界面:

圖 11 ----- Struts 圖形化設計模式視圖
現在我們已經(jīng)知道怎么創(chuàng )建 Struts 部件的不同組件了,我們可以創(chuàng )建 Login 應用的不同部分了。下面接著(zhù)來(lái)
5.2 搭建應用程序
我們通過(guò)集中創(chuàng )建 Jsp 頁(yè)面來(lái)開(kāi)始搭建示例應用。既然我們的應用模擬某個(gè)網(wǎng)站登錄界面,那么僅需要 2 個(gè) jsp 頁(yè)面: userLogin.jsp 和 userLoginSuccess.jsp 。像大多數 Struts 應用程序一樣,如果再登錄過(guò)程發(fā)生錯誤,將引導用戶(hù)回到 userLogin.jsp 并提示出錯(我們并不需要一個(gè)專(zhuān)門(mén)的出錯頁(yè)面 userLoginFailure.jsp )。
首先,創(chuàng )建 userLoginSuccess.jsp ??雌饋?lái)像是首先創(chuàng )建最后的頁(yè)面,這樣做的目的是我們可以利用 New Form, Action and JSP 來(lái)創(chuàng )建 userLogin.jsp, 這個(gè)頁(yè)面關(guān)聯(lián) Action 和 ActionForm 。
下圖 12 就是開(kāi)始在 Struts 設計模式下創(chuàng )建 userLogin.jsp

圖 12---- 創(chuàng )建 jsp 頁(yè)面
在點(diǎn)擊后,系統將提示圖下圖 13 所示的對話(huà)框
注意:一定要選 Standard JSP using Struts 1.1

圖 13---- 配置 userLoginSuccess.jsp
在單擊 Finish 之后,設計試圖上顯示最新創(chuàng )建的頁(yè)面。如下圖 14

圖 14
要完成這個(gè) jsp 頁(yè)面就只剩輸出那些告知用戶(hù)已經(jīng)成功登錄的信息了!下面給出了 userLoginSuccess.jsp 的源代碼:
userLoginSuccess.jsp |
<%@ page language= "java"%> <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %> <!DOCTYPE HTML PUBLIC "-//W 3C//DTD HTML 4.01 Transitional//EN"> |
這個(gè)頁(yè)面很簡(jiǎn)單。我們唯一要做的事情 <body> 標簽的內容:輸出變量 userName 的值,這個(gè)變量 userName 是存儲在此應用請求過(guò)程中。所以,在隨后要創(chuàng )建的 action 中,需要我們放置一個(gè) userName 屬性在請求過(guò)程中。
此刻,我們還要創(chuàng )建 userLogin.jsp , ActionForm 和 Action ??雌饋?lái)工作量不少啊,但是 MyEclipse 可以通過(guò) New Form and New Form, Action and JSP 對話(huà)框 方便的創(chuàng )建他們。
繼續構建這個(gè)應用,右擊 Struts designer 畫(huà)布的空白處。選擇 new ,接著(zhù)選擇 New Form, Action and JSP 如下圖 15 所示:

圖 15------- 啟動(dòng) New Form, Action, JSP
首先出現的是: New Form 對話(huà)框。一定要輸入 user case 名稱(chēng)。下圖 16 展現了你將要填寫(xiě)的 user case 名稱(chēng) 的值

圖 16
下面我們將要添加 2 個(gè)表單屬性: userName 和 password 。當添加 password 域時(shí),選擇 JSP input type 為 password 。如圖 17 所示:

圖 17 ----- 為表單添加屬性

圖 18 -----Form 屬性
在單擊 Next 前,一定要單擊 JSP 標簽并如下圖 19 一樣操作。

圖 19
最后我們單擊 Methods 標簽,不要選擇任何方法。如下圖 20

圖 20
單擊 Next 按鈕后,出現 New Action 對話(huà)框,你可以看到已經(jīng)為你填寫(xiě)了大多數的值。圖 21 就是這個(gè)對話(huà)框的截圖。如下:

圖 21
你可以單擊 Forwards 標簽來(lái)指定 ActionForwards 。如下圖 22

圖 22
在為這個(gè) action 添加完 Forwards 后,單擊 Finish 按鈕。 MyEclipse 會(huì )創(chuàng )建資源并更新 struts-config.xml 文件。圖 23 展示了更改后的結構。

圖 23
現在系統的流程已經(jīng)被卻確定,我們需要為這個(gè) Action 添加邏輯來(lái)控制 登錄流程。通過(guò)雙擊可以快速的跳轉到任何資源。就像下圖 24 展示的一樣

圖 24
當你第一次打開(kāi) UserLoginAction.java 的時(shí)候,為 execute ()方法自動(dòng)生成的代碼如下:
UserLoginAction.java |
public ActionForward execute( |
修改 userLoginAction.java 的 execute ()方法后如下:
UserLoginAction.java |
public ActionForward execute( |
這里我們做了很簡(jiǎn)單的事情,僅僅檢驗 userName 和 password 是不是都為 myeclipse 。如果是,存儲 userName 在請求過(guò)程中,并轉向: success ,因此 userLoginSucces.jsp 會(huì )顯示出個(gè)人化的信息。否則,出錯后將要轉向 failse 。在實(shí)際應用中,你應該添加 ActionMessages 或者 ActionErrors 集合一解釋發(fā)生了什么事情。
6. 運行
現在應用程序已經(jīng)完成,我們要把它部署到 Tomcat5 。打開(kāi) Package Explorer 視圖并且右擊項目,然后依次選擇 MyEclipse > Add and Remove Project Deployments 或者單擊工具條的 Deploy J2EE Project to Server 按鈕。如下圖 25

圖 25
完成部署后檢測部署狀態(tài)來(lái)確保正確部署。你可以按照圖 26 做

圖 26
最后按照圖 27 來(lái)啟動(dòng) Tomcat 來(lái)使用應用服務(wù)器

圖 27
服務(wù)器啟動(dòng)的時(shí)候, Eclipse 的 Console 視圖會(huì )顯示啟動(dòng)狀態(tài)。如圖 28

圖 28
當 Tomcat5 運行起來(lái),我們就可以通過(guò) MyEclipse 的 Browser 視圖來(lái)測試示例應用了。選擇菜單 Window > Show View > Other... 截圖如下圖 29 所示

圖 29
在地址欄中輸入網(wǎng)址,如下圖所示

圖 30
說(shuō)明程序能正常運行。按照下圖 31 輸入 userName 和 passwod

圖 31
登錄以后,我們被引導到成功登錄界面。如圖 32

圖 32
7. 總結
在這個(gè)示例中,我們通過(guò) MyEclipse Enterprise Workbench 提供的 Struts 工具開(kāi)發(fā)了一個(gè)簡(jiǎn)單的 Struts 應用。
我們可以看大 MyEclipse 帶給我們益處:高效,方便。
聯(lián)系客服