MyEclipse Struts 快速上手

來源:互聯網
上載者:User

1. 序

此文檔適應 Sun JDK 1.4.2, Eclipse 3.0.1 and MyEclipse 3.8.2. 環境。所有的螢幕都是基於 Eclipse, MyEclipse Enterprise Workbench, and Windows XP 的預設使用者介面設定。如果你在使用這個文檔的過程中遇到困難,請看使用者反饋部分,以反饋給 MyEclipse documentation team 。

2. 說明

在這個使用者指南中我們將通過 MyEclipse Enterprise Workbench 來開發與測試一個簡單的 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. 構造一個新項目

為了有效組織我們的開發,我們需要在添加了 Struts Capabilities 的 MyEclipse 中建立一個新的 Web Module Project 你可以建立一個 web project 通過菜單 File > New > Other > Project > J2EE > Web Project ,如所示

圖 1--- 建立 Web Project 對話方塊

然後鍵入關於新項目的所有資訊 ,如:

圖 2 ---- 設定 Web Project

一旦建立了 Web Project ,我們需要為 MyEclipse 添加 Struts Capabilities 。這可以通過右擊 Package Explorer 視圖中 項目的名稱,並且依次選擇 MyEclipse > Add Struts Capabilities 做到。如下面圖示:

圖 3 :在 Web Project 中 添加 Struts Capabilities

對這個應用來說, Struts 對話方塊的預設值已經很適合了。但是,你可以改變 Base package for new classes 來適應你的情況。如 4 所示,我們只是簡單的保留這些預設值。

圖 4---- 配置 Struts Capabilities

當完成上面的步驟,項目的結構會如 5 所示

圖 5 ---- 配置後的項目結構視圖

現在我們已經成功地建立完項目,然後可以開始構建 web 的內容了,現在轉入下一步。

5. 開始一個 Struts 項目

這一部分我們將要集中建立一個 Struts 應用樣本,這個實力是在模仿一個簡單的網站登入螢幕。所以,僅需要 2 個 Jsp 頁面,一個提示使用者登入,另一個簡要的說明登入成功。我們分別命名這 2 個 jsp 頁面為 userLogin.jsp 和 userL oginSuccess.jsp 。 如果使用者試圖登入時存在授權錯誤,將直接指導使用者返回 LoginUser.jsp 並且顯示錯誤資訊。

一般來說,當開始一個 Struts 項目的時候,設計好應用的流程是很有用的。這樣,Team Dev就會對項目中所有元素的組合有一個更好的認識。建立流程最容易的方法就是通過使用 Struts 圖形化設計模式。 Struts 編輯器提供了一個可以拖放工具,它可以使你通過快速的複製頁面流程來構造應用。這個應用樣本 Login 的流程就如 6 所示

圖 6 ----- 應用程式的流程

我們可以從上面的設計檢視中看到此應用開始於 userLogin.jsp 頁面的顯示。此登入頁將要調用 userLogin 動作( action )來執行使用者的登入操作。如果出現驗證錯誤或問題, userLogin action 將引導使用者返回 userLogin.jsp 頁面。然而,如果登入成功,應用將轉向 userLoginSuccess.jsp 頁面。

5.1 Struts 項目的組件

一個典型的 Struts 項目會包括以下組件

JSPs

Actions

ActionForwards*

ActionForms**

Struts 部署檔案 : struts-config.xml

在 MyElcipse 中可以通過 3 個不同的方法建立所有組件或者其中一個組件(除了 struts-config.xml )

方法 1 :使用菜單 File > New > Other... > J2EE > Struts 1.1 (or 1.0) , 如:

圖 7

對話方塊將直接引導你並且提示你所有被 Struts 組件支援的值。一些組件要比其他的複雜。例如:如 8 所示的對話方塊,你可以看到 Struts Action 支援的所有特徵已經被賦予了容易理解的值

圖 8----- 對話方塊:建立新的 Struts Action

方法 2 :使用 Outline 視圖。從此視圖中,你可以通過右擊任何一個組件類型快顯功能表來建立此類型的新組件。圖 9 如下:

圖 9----Outline 視圖

方法 3 : Struts 圖形化編輯器(如 10 )也是一個建立 Struts 組件的方便之路。開啟 struts-config.xml 檔案,單擊編輯器下面的 Design 標籤就可以開啟 Struts 圖形化編輯器

圖 10----- 開啟 Struts 圖形化編輯器:

然後轉到如 11 所示的編輯模式介面:

圖 11 ----- Struts 圖形化設計模式視圖

現在我們已經知道怎麼建立 Struts 組件的不同組件了,我們可以建立 Login 應用的不同部分了。下面接著來

5.2 搭建應用程式

我們通過集中建立 Jsp 頁面來開始搭建樣本應用。既然我們的應用類比某個網站登入介面,那麼僅需要 2 個 jsp 頁面: userLogin.jsp 和 userLoginSuccess.jsp 。像大多數 Struts 應用程式一樣,如果再登入過程發生錯誤,將引導使用者回到 userLogin.jsp 並提示出錯(我們並不需要一個專門的出錯頁面 userLoginFailure.jsp )。

首先,建立 userLoginSuccess.jsp 。看起來像是首先建立最後的頁面,這樣做的目的是我們可以利用 New Form, Action and JSP 來建立 userLogin.jsp, 這個頁面關聯 Action 和 ActionForm 。

12 就是開始在 Struts 設計模式下建立 userLogin.jsp

圖 12---- 建立 jsp 頁面

在點擊後,系統將提示圖 13 所示的對話方塊

注意:一定要選 Standard JSP using Struts 1.1

圖 13---- 配置 userLoginSuccess.jsp

在單擊 Finish 之後,設計試圖上顯示最新建立的頁面。如 14

圖 14

要完成這個 jsp 頁面就只剩輸出那些告知使用者已經成功登入的資訊了!下面給出了 userLoginSuccess.jsp 的原始碼:

userLoginSuccess.jsp

<%@ page language= "java"%>

<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-template" prefix="template" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-nested" prefix="nested" %>

<!DOCTYPE HTML PUBLIC "-//W 3C//DTD HTML 4.01 Transitional//EN">
<html:html locale="true">
<head>
<title>My Struts 'userLoginSuccess.jsp' ending page</title>
</head>

<body>
Hello <bean:write name="userName" scope="request" />, you successfully logged in!
</body>
</html:html>

這個頁面很簡單。我們唯一要做的事情 <body> 標籤的內容:輸出變數 userName 的值,這個變數 userName 是儲存在此應用請求過程中。所以,在隨後要建立的 action 中,需要我們放置一個 userName 屬性在請求過程中。

此刻,我們還要建立 userLogin.jsp , ActionForm 和 Action 。看起來工作量不少啊,但是 MyEclipse 可以通過 New Form and New Form, Action and JSP 對話方塊 方便的建立他們。

繼續構建這個應用,右擊 Struts designer 畫布的空白處。選擇 new ,接著選擇 New Form, Action and JSP 如 15 所示:

圖 15------- 啟動 New Form, Action, JSP

首先出現的是: New Form 對話方塊。一定要輸入 user case 名稱。 16 展現了你將要填寫的 user case 名稱 的值

圖 16

下面我們將要添加 2 個表單屬性: userName 和 password 。當添加 password 域時,選擇 JSP input type 為 password 。 17 所示:

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

圖 18 -----Form 屬性

在單擊 Next 前,一定要單擊 JSP 標籤並如 19 一樣操作。

圖 19

最後我們單擊 Methods 標籤,不要選擇任何方法。如 20

圖 20

單擊 Next 按鈕後,出現 New Action 對話方塊,你可以看到已經為你填寫了大多數的值。圖 21 就是這個對話方塊的。如下:

圖 21

你可以單擊 Forwards 標籤來指定 ActionForwards 。如 22

圖 22

在為這個 action 添加完 Forwards 後,單擊 Finish 按鈕。 MyEclipse 會建立資源並更新 struts-config.xml 檔案。圖 23 展示了更改後的結構。

圖 23

現在系統的流程已經被卻確定,我們需要為這個 Action 添加邏輯來控制 登入流程。通過雙擊可以快速的跳轉到任何資源。就像 24 展示的一樣

圖 24

當你第一次開啟 UserLoginAction.java 的時候,為 execute ()方法自動產生的程式碼如下:

UserLoginAction.java

public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
UserLoginForm userLoginForm = (UserLoginForm) form;
throw new UnsupportedOperationException(
"Generated method 'execute(...)' not implemented.");
}

修改 userLoginAction.java 的 execute ()方法後如下:

UserLoginAction.java

public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
UserLoginForm userLoginForm = (UserLoginForm) form;

if(userLoginForm.getUserName().equals("myeclipse") && userLoginForm.getPassword().equals("myeclipse"))
{
request.setAttribute("userName", userLoginForm.getUserName());
return mapping.findForward("success");
}

return mapping.findForward("failure");
}

這裡我們做了很簡單的事情,僅僅檢驗 userName 和 password 是不是都為 myeclipse 。如果是,儲存 userName 在請求過程中,並轉向: success ,因此 userLoginSucces.jsp 會顯示出個人化的資訊。否則,出錯後將要轉向 failse 。在實際應用中,你應該添加 ActionMessages 或者 ActionErrors 集合一解釋發生了什麼事情。

6. 運行

現在應用程式已經完成,我們要把它部署到 Tomcat5 。開啟 Package Explorer 視圖並且右擊項目,然後依次選擇 MyEclipse > Add and Remove Project Deployments 或者單擊工具條的 Deploy J2EE Project to Server 按鈕。如 25

圖 25

完成部署後檢測部署狀態來確保正確部署。你可以按照圖 26 做

圖 26

最後按照圖 27 來啟動 Tomcat 來使用應用伺服器

圖 27

伺服器啟動的時候, Eclipse 的 Console 視圖會顯示啟動狀態。 28

圖 28

當 Tomcat5 運行起來,我們就可以通過 MyEclipse 的 Browser 視圖來測試樣本應用了。選擇菜單 Window > Show View > Other... 如 29 所示

圖 29

在地址欄中輸入網址,如所示

圖 30

說明程式能正常運行。按照 31 輸入 userName 和 passwod

圖 31

登入以後,我們被引導到成功登入介面。 32

圖 32

7. 總結

在這個樣本中,我們通過 MyEclipse Enterprise Workbench 提供的 Struts 工具開發了一個簡單的 Struts 應用。

我們可以看大 MyEclipse 帶給我們益處:高效,方便

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.