• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 創建基于 Struts 的 Web 應用程序

    發表于:2007-05-24來源:作者:點擊數: 標簽:web應用程序創建struts基于
    本文將指導您輕松地完成安裝 DB2 8.1 和 IBM Java 運行時環境(Java Runtime Environment,JRE)的步驟。本文適用的對象是那些剛接觸 Linux 或基于 UNIX 操作系統的 開發 人員。在論壇中與作者和其他讀者分享您對本文提出的問題和觀點。 簡介 Struts 是一個用
    本文將指導您輕松地完成安裝 DB2 8.1 和 IBM Java 運行時環境(Java Runtime Environment,JRE)的步驟。本文適用的對象是那些剛接觸 Linux 或基于 UNIX 操作系統的開發人員。在論壇中與作者和其他讀者分享您對本文提出的問題和觀點。

    簡介
    Struts是一個用于開發 Web 應用程序的概念框架。它是模型-視圖-控制器(Model-View-Controller,MVC)設計范例的一個變體,其中 控制器的功能是作為應用程序邏輯( 模型)和數據表示( 視圖)之間的中間介質。該框架包含一組 Java 類和 JSP 標記庫。同 IBM WebSphere Studio 中的工具一起,Struts 可以幫助開發人員快速地設計和實現 Web 應用程序。Struts 是 Apache 軟件基金會 Jakarta 項目所擁有的眾多產品中的一種。

    本文為您演示了如何使用 IBM WebSphere Studio Site Developer 來創建一些初始組件,它們是基于 Struts 的 Web 應用程序所必需的。這些組件包括:

    • 應用程序的網站的入口頁面(index.jsp),它包括用于輸入用戶標識和密碼的登錄表單
    • 用于初始數據驗證的相關 ActionForm 類,它驗證用戶是否輸入了用戶標識和密碼,如果未輸入則發出錯誤消息
    • 認證用戶的用戶標識和密碼的 Action 類(在實際的應用程序中,應當由 WebSphere 或 IBM Policy Director 管理安全性,例如用戶標識/密碼認證)
    • 網站的 home.jsp,一旦成功登錄就調用它
    • error.jsp 頁面,如果輸入的用戶標識和密碼未能通過認證,則顯示該頁面

     

    圖 1. 樣本 Struts 應用程序
    樣本 Struts 應用程序

    開始之前
    請安裝 Red Hat Linux 7.2、Red Hat Linux 7.3、 SuSE Linux 7.3或 安裝 SuSE Linux Enterprise Server(SLES)8。

    您將需要 WebSphere Studio Site Developer。通過索取包含 WebSphere Studio Site Developer 和其它 IBM 試用軟件的免費 CD 集,或者通過下載,可以獲得免費的 60 天試用版本??稍?ldquo;Speed-start your Linux application”概述頁面上找到有關 索取 CD 集或下載產品的信息。盡管本文中的示例使用了 IBM WebSphere Studio Site Developer,但是也可以使用 IBM WebSphere Studio Application Developer,它包含了其它特性,例如 EJB 支持。本文以下部分將這兩個產品都稱為“WebSphere Studio”。

    您應當使用 Help->Software Updates菜單功能將您的 WebSphere Studio 軟件升級到 5.0.1 級別。這將糾正下面提及的一些接口問題;否則,這些問題將要求您停止和重新啟動 WebSphere Studio。

    您是 Linux 新手嗎?如果您是一位 Linux 新手,并且需要有關登錄和注銷、掛裝 CD-ROM 或打開終端窗口方面的幫助,請參閱“ 針對 Linux 開發新手的基本任務”,它介紹了這些任務,以及其它任務。

    創建 Web 項目
    在本節中,我們將登錄,然后啟動 WebSphere Studio 并在新的工作空間中創建用于 Struts 應用程序的 Web 項目。

    1. 以某個用戶身份(不要以 root 用戶身份)登錄并啟動 WebSphere Studio Site Developer。從終端窗口運行 wssitedev50。如果您的路徑中無 /usr/bin,那么請運行 /usr/bin/wssitedev50。還可以從桌面的任務欄啟動程序。例如,對于 KDE,選擇 Start Application > Run Command...并根據情況相應地輸入 wssitedev50/usr/bin/wssitedev50。對于本示例,我們將創建一個名為 MyBank 的新工作空間,以便于將該項目與您可能正在進行的其它項目區分開。

      圖 2. 啟動新項目
      啟動新項目

    2. 創建工作空間時,您會看到顯示 Site Developer 徽標。這一工作可能需要花費一些時間,請耐心等待。

      圖 3. 創建 MyBank 工作空間
      創建 MyBank 工作空間

    3. 當工作空間打開時,您的首要任務是創建一個新項目。對于本項目,我們將向您介紹 基于 Struts 的 Web 應用程序備忘單(cheat sheet)。有關創建項目的更多方法,請參閱文章“ 用 WebSphere Studio Application Developer 在 90 秒內快速啟動您的 Linux 應用開發:“Hello, World””。順帶我們將指出備忘單的功能,并且將介紹一些備忘單未涉及的一些功能。要啟動一個帶有備忘單的新 Struts 項目,請單擊 Help > Cheat Sheets > Create a Struts-based Web application,如圖 4 所示。

      圖 4. 創建新項目
      創建新項目

    4. 打開了備忘單介紹?,F在,在左邊的導航區域有一個備忘單圖標,當看不見備忘單時,可以使用該圖標來打開它。還有一個形狀為黑色箭頭的按鈕,可以使用它跳到備忘單的下一步?,F在單擊它以轉到備忘單的下一個階段,在那將開始創建我們的項目。

      圖 5. 備忘單介紹
      備忘單介紹

    5. 單擊執行按鈕(黑色箭頭)以創建一個 Web 項目。

      圖 6. 備忘單 — 創建 Web 項目
      備忘單 — 創建 Web 項目

    6. 在下一個屏幕上,在 Project name 域中輸入 MyBankWeb。備忘單已經選擇了 Web Project features 下的 Add Struts support。選項 Create a default CSS file應當已處于被選中狀態。單擊 Next。

      圖 7. 創建新的 Web 項目
      創建新的 Web 項目(1)

    7. 在 J2EE Settings Page 上,在 New project name 域中輸入 MyBankEAR,并在 Context root 域中輸入 MyBank。使用缺省的 J2EE 級別 1.3。單擊 Next。

      圖 8. 指定 J2EE 設置
      指定 J2EE 設置

    8. Struts Settings 窗口上的缺省值是可接受的。請注意選中了 Create a Resource Bundle for Struts Project。在下一部分處理中,我們將向該資源束(Resource bundle)添加屏幕文本和出錯消息特性。在資源束中保存這樣的字符串有助于將我們的 Web 頁面翻譯成另一種語言。單擊 Finish。

      圖 9. 指定 Struts 設置
      指定 Struts 設置

    9. 您將返回到備忘單,現在多了一個處于選中狀態的項。單擊備忘單上的 最小化(_)按鈕,因為我們在下一步中要使用工作空間的其它一些特性。

      圖 10. 備忘單 — 創建 Web 圖
      備忘單 — 創建 Web 圖

    WebSphere Studio 中的透視圖
    在繼續之前,我們需要介紹一個重要的概念。WebSphere Studio 是一個面向任務的工具,它的用戶界面是為要執行的任務定制的。用于開發 JSP 的界面與用于服務器開發的界面有很大的不同。通過切換您正在使用的透視圖,Site Developer 允許您對查看哪些窗口和視圖進行控制。 透視圖是一組視圖,這些視圖顯示了執行具體任務時您需要的資源。WebSphere Studio 擁有為 Web 應用程序開發、J2EE 開發、調試和許多其它常見任務而定義的透視圖。左邊的導航欄包含了幾個圖標,這些圖標允許您方便地打開透視圖或在透視圖之間切換。

    打開透視圖圖標
    打開透視圖
    打開新的透視圖或切換到一個已經打開的透視圖。常用的透視圖是列在菜單中的,其它許多透視圖可通過 Other菜單選項訪問。
    Web 透視圖圖標
    Web 透視圖
    將視圖切換到 Web 透視圖。
    備忘單圖標
    備忘單
    顯示或最小化備忘單

    應用程序資源
    上面我們提到過,我們將創建資源束,以允許翻譯文本。根據這個應用程序的初始設計,它將包含三個 JavaServer Pages:index.jsp、home.jsp 和 error.jsp。我們將為您演示如何為要在所有頁面、出錯消息、按鈕文本和用戶標識及密碼提示上使用的標題創建應用程序資源。盡管我們在實際的應用程序中不會混合使用不同的方法,但是我們還是會將一些文本直接編輯進頁面,這樣您就可以看到不同的工作方法。

    這些資源存儲在應用程序資源特性文件中。在本節中,我們將為您演示幾個有關 IDE 的技巧,然后創建這些應用程序資源。

    1. 如果你從頭至尾都是按照我們的步驟進行的,那么您現在應當看到了 Web 透視圖。如果沒有,那么請單擊左邊導航欄中的 Web 透視圖圖標(見上面的 WebSphere Studio 中的透視圖中的描述),或者選擇 Window > Open Perspective > Web。我們將使用 Web 透視圖中的 J2EE Navigator 窗格來瀏覽應用程序資源文件,然后打開它進行編輯。窗格底部的選項卡允許您在窗格之間切換。

      圖 11. J2EE Navigator 窗格
      J2EE Navigator 窗格

    2. 現在通過單擊加號(+)展開 Web 項目樹,以顯示如圖 12 所示的 ApplicationResources.properties 文件。如果 J2EE 窗格非常小,可以在標題上按鼠標右鍵以彈出上下文菜單,然后最大化該窗格。

      圖 12. 展開的 J2EE Navigator 窗格
      展開的 J2EE Navigator 窗格

    3. 雙擊 MyBankWeb.Web Content.WEB-INF.classes.mybankweb.resources 中的 ApplicationResources.properties,以利用特性文件編輯器(Properties File Editor)打開它。請注意當您這樣做時 J2EE Navigator 窗格是如何恢復成以前大小的。盡管超出了本文的范圍,但是如果您愿意,也可以使用其它編輯器。選擇 Window > Preferences,并且在首選項樹的 Workbench部分的 File associations下面進行查看。

      除去 errors.header 和 errors.footer 特性前的 #。在 errors.footer 特性之后添加如下面清單所示的那些行。

      提示:Linux 的應用程序有時候會共享剪貼板,但并非始終如此。在共享的情況下,Edit > copy(ctrl-C)和 Edit > paste(ctrl-V)通常分別用做復制和粘貼。如果這無法工作,那么如果您有一個三鍵鼠標(或者如果您已經對鼠標進行了設置,通過協調兩個按鍵 — 即同時按下兩個按鍵來模擬三鍵鼠標),通常有一個較為“古老”的方法可以使用。按下鼠標左鍵,在某個窗口的文本上拖動鼠標,然后使用中間的按鍵(或在 2 鍵鼠標上同時按下兩個按鍵)將突出顯示的文本粘貼進編輯器窗格。您可以在一個窗口中或多個窗口之間使用這個便捷的技巧。

      清單 1. 將這些行添加到 ApplicationResources.properties 文件中的 errors.footer 特性之后

      
                      # Optional header and footer for <errors/> tag.
                      errors.header=<ul>
                      errors.footer=</ul>
                      index.title=MyBank Application
                      button.login=Login
                      global.field.userid=User ID
                      global.field.password=Password
                      error.login.nouserid=<li>You must enter a User ID.
                      error.login.nopassword=<li>You must enter a Password.
                      error.login.failed=<li>Invalid User ID and/or Password entered.
                      error.login.exception=<li>Exception occurred in action.

    4. 您剛剛添加的值將表示 JSP 文件中的顯示輸出。請注意,我們的出錯消息是以無序列表中的列表元素的形式顯示的。保存并關閉 ApplicationResources.properties 文件。在缺省的編輯器中,如果您愿意,可以使用鍵盤快捷鍵:Ctrl-s 將保存文件,Ctrl-F4 將關閉該窗格。

    Struts 應用程序圖
    在這一步中,我們將返回到備忘單,并且創建 Struts 應用程序圖,我們將用它來設計和構建我們的應用程序組件。

    1. 單擊左邊導航欄中的備忘單圖標以將其恢復成 圖 10中的備忘單。單擊 Perform 按鈕創建新的 Web 圖。

      如果您沒在使用備忘單,那么通過單擊工具欄按鈕( New 向導按鈕)(或選擇 File > New > Other....)可以打開 New 向導。在 Select 對話框的左邊窗格上,展開 Web并選擇 Struts。在右邊的窗格中選擇 Web Diagram。單擊 Next。

      注:如果您不喜歡使用 Struts 應用程序圖,那么通過使用 File > New > Other... 下可用的新建文件向導,然后選擇 Web > Struts 和您希望構建的組件,您仍可以為該項目創建每個組件。

    2. 在 File name 域中輸入 Login。單擊 Finish。

      圖 13. 創建新的 Web 圖
      創建新的 Web 圖

      Struts 應用程序圖文件 Login.gpf 是用 SADE(Struts 應用程序圖表編輯器)創建和打開的?,F在將在自由窗體界面(Free Form Surface,FFS)上布置您的 JavaServer Pages、表單 Bean 和 Action Bean。我們將使用下列位于編輯器上方的工具欄按鈕。(除非您將鼠標移動到這些按鈕上方,否則它們是灰色的,不可點擊。)

      連接圖標
      連接(Connection)
      繪制從選定節點到目標節點的連接
      操作映射圖標
      操作映射節點(Action Mapping Node)
      使光標準備就緒以將新的操作映射放到 FFS 上
      表單 bean 圖標
      表單 Bean 節點
      使光標準備就緒以將新的表單 bean 節點放到 FFS 上
      java bean 圖標
      Java Bean 節點
      使光標準備就緒以將新的 java bean 節點放到 FFS 上
      Web 頁面圖標
      Web 頁面節點
      使光標準備就緒以將新的 Web 頁面放到 FFS 上

    3. 我們現在將創建 Web 頁面對象。首先單擊工具欄中的“新建 Web 頁面節點(New Web Page Node)”按鈕( Web 頁面圖標)(或者在圖表編輯器界面中單擊鼠標右鍵,然后選擇 New > Web Page Node),然后在圖表編輯器的左邊單擊以放下 Web 頁面節點。將該頁面的路徑從缺省的 /page.jsp更改為 /index.jsp,然后按 Enter。在新的 JSP 上單擊鼠標右鍵以彈出上下文菜單,然后選擇 Change description。輸入 Login entry page的描述,并按 Enter。您的 FFS 現在應當看起來如圖 14 所示。如果弄錯了路徑或描述,可以使用上下文菜單更改它們。

      圖 14. 創建新的 JSP
      創建新的 JSP

    4. 以同樣的方式,在 FFS 上創建另兩個新的 Web 頁面節點,并將它們的路徑名分別更改為 /home.jsp/error.jsp,如圖 15 所示。如果愿意,可以添加描述。

      圖 15. 創建其它 JSP
      創建其它 JSP

    5. 以類似的方式,將操作映射節點( 操作映射圖標)放在 FFS 的中間,并將其路徑設置為 /login。然后創建表單 Bean 對象( 表單 Bean 圖標)。在 Form Bean Attributes 中,在 Name 域中輸入 loginForm,并保留 Scope 為 request。單擊 OK。

      圖 16. 創建表單 bean
      創建表單 bean

    6. 現在我們將創建節點之間的連接。Struts 圖連接是一條線,它表示了兩個 Struts 節點之間的邏輯流或數據流。要創建連接,請單擊工具欄中的“連接兩個節點(Connect Two Nodes)”按鈕( 連接圖標)。首先單擊源對象,再單擊目標對象,以在編輯器中創建兩個節點之間的連接。
      1. index.jsp(登錄入口)頁面連接到 login操作映射。
      2. login操作映射連接到 home.jsp頁面。將連接 <new>的轉發名(forward name)替換為 success,然后按 Enter。如果稍后需要更改連接的轉發名,只需在連接線上單擊鼠標右鍵,然后選擇 Edit the forward name。
      3. login操作映射連接到 error.jsp頁面。將連接 <new>的轉發名替換為 failure,然后按 Enter。
      4. error.jsp頁面連接到 index.jsp(登錄入口)頁面。
      5. index.jsp(登錄入口)頁面連接到 loginFormBean。
      建立了這些連接后,應當擁有一個類似圖 17 的布局。

      圖 17. 添加連接
      添加連接

      請注意,對象是灰色的,連接是用虛線表示的,因為它們尚未實現。

    實現 JavaServer Pages
    現在我們將返回到備忘單,以實現我們的 JSP:index.jsp(登錄入口頁面)、主頁和出錯頁面。

    1. 再次顯示備忘單,并在 Create the JSPs (WebPages) and Beans部分中單擊 Perform按鈕。在產生的窗口上,展開 MyBankWeb并單擊一次以選擇 Login 表單,然后單擊 OK。將打開一個新窗口,其中帶有一個未實現的 JSP 和表單 bean 的檢查表。我們將從 index.jsp 著手,所以選擇它并單擊 OK(或者雙擊它)。

      圖 18. 未實現的 JSP 和 bean 的列表
      未實現的 JSP 和 bean 的列表

    2. 現在我們將使用頁面設計器(Page Designer)來創建 index.jsp。
      1. 將打開新建 JSP 向導。如果您并未在使用備忘單,也可以打開該向導,即通過在應用程序圖(Login.gph)中的 index.jsp節點上雙擊。File Name 已被設置為 index,而 Model 被設置為 Struts JSP。單擊 Finish。

        圖 19. 新建 JSP 向導
        新建 JSP 向導

      2. 頁面設計器將以設計方式(Design mode)啟動。在開始編輯我們的 JSP 之前,我們將為您介紹 Studio IDE 中的一些便捷的視圖。從 IDE 左下方窗格中的選項卡(Gallery、Library 和 Outline ……)單擊 Outline 選項卡以選擇 outline 視圖,這將向我們提供樹結構的 JSP outline 視圖,該視圖將有助于我們確保我們的頁面結構是正確的。

        右下窗格包含一條表明 /login 目標不存在的消息。我們需要編輯幾個特性,所以這里我們將打開 properties 視圖。要做到這一點,請選擇 Window > Show View > Other。在彈出的對話框中,展開 Basic,選擇 Properties,然后單擊 OK。 Properties選項卡將被添加到右下窗格,該窗格將在 Properties視圖中打開。您的屏幕現在應當如圖 20 所示。

        圖 20. Outline 和 Properties 視圖
        Outline 和 Properties 視圖

      3. 現在我們回過頭創建 JSP。應當已經存在了一個 <html:form> 標記集(由一個邊框所表示的),其操作被設置為 /login,以調用登錄操作映射。在邊框中單擊以選擇它。當它被選中時您會看到框的輪廓發生變化。還應在 Outline 視圖中選擇 html:form元素。一旦選擇了它,單擊 JSP菜單并選擇 Insert Custom。

        圖 21. 頁面設計
        頁面設計

      4. 如圖 22 所示選擇 beanmessage。單擊 Insert。選擇 htmltext,并再次單擊 Insert。然后單擊 Close。這將插入一個用于用戶標識提示的消息 bean,以及一個要求用戶輸入標識的文本域。請注意 Outline 視圖中的其它項。

        圖 22. 添加消息 bean 和文本域
        添加消息 bean 和文本域

      5. 在上一個步驟中插入到登錄表單的消息 bean 定制標記應當有表明 Missing message for key的文本。單擊該 bean:message 定制標記以選擇它(或者在 Outline 視圖中選擇它)。這將在 Properties 視圖中顯示 bean 的特性。如果 Properties 視圖非常小,您可能希望把它放大,這可以象圖 23 中所做的那樣,通過使用鼠標左鍵拖動它的上部將其往上拉來做到這一點。向下滾動 Properties 視圖,然后將消息的 key特性更改為 global.field.userid。按 Enter。這將在應用程序資源文件中使用與 global.field.userid 相關的文本。用同樣的方法,選擇您插入的 html:text 定制標記,并將其 property特性更改為 userid。這將是用戶標識變量在 Java 代碼中的名稱。當您更改特性時,可能會有一些延遲,這取決于您的處理器速度和所擁有的 RAM 數量。

        圖 23. 設置消息 bean 的 key 特性
        設置消息 bean 的 key 特性

      6. 將光標放到 html:text 域之后,然后按 Enter插入一個換行符( BR)?,F在我們將插入其它兩個定制元素,以創建我們的密碼提示和輸入域,所以請單擊 JSP菜單然后選擇 Insert Custom。選擇 beanmessage,并單擊 Insert。選擇 htmlpassword,然后單擊 Insert以添加密碼輸入域。單擊 Close。將新的消息 bean 的 key特性設置為 global.field.password,并單擊 Enter。將 property特性設置為 password,然后單擊 Enter。您的屏幕看上去應當象圖 24。

        圖 24. 添加密碼提示和輸入域
        添加密碼提示和輸入域

      7. 既然已經定義了數據輸入域,我們需要一個按鈕來提交該表單。將光標放在 html:password 域之后并按兩次 Enter,以插入兩個換行符?,F在使用 JSP菜單并選擇 Insert Custom?,F在選擇 htmlSubmit并單擊 Insert,然后選擇 beanmessage,再次單擊 Insert。單擊 Close。在 Properties 視圖中,輸入 button.login作為新消息 bean 的 key特性,并按 Enter。(如果您尚未運行 Help > Software updates 升級到 V5.0.1,那么 button.login 文本可能不會立即出現在 Design 視圖中)。如果一切正常,您的屏幕現在看起來應該如圖 25。

        圖 25. 添加提交按鈕
        添加提交按鈕

      8. 在表單上方(在它外面)單擊鼠標左鍵以添加標題標記。您的光標應該正好在表單前面。Outline 視圖應當突出顯示“BODY”。從菜單欄選擇 Format > Paragraph > Heading 1。通過插入另一個 bean:messageJSP 定制標記來添加 Login 頁面標題文本。將 key特性設置為 index.title并按 Enter。應當出現 MyBank Application 標題。

        圖 26. 添加頁面標題
        添加頁面標題

      9. 在標題和表單之間的位置上單擊鼠標左鍵。然后插入另一個 JSP 定制標記 html:errors。

        圖 27. 添加 html:errors 標記
        添加 html:errors 標記

      10. 通過單擊 Source 選項卡可以查看我們頁面的源文件。Login 入口頁面的 Source 視圖如圖 28 所示。請注意 action="/login" 旁邊有一個警告,因為我們尚未為其定義操作映射。

        圖 28. Source 視圖
        Source 視圖

      11. 使用 File > Save index.jsp保存 JSP,然后使用 File > Close關閉它。請注意應用程序圖中的 index.jsp 節點現在加上了色彩,表明它已經實現了。在備忘單的 JSP 和 bean 列表中還有一個選中標記。
    3. 既然創建了 Login 入口頁面(index.jsp),現在可以創建網站的 home.jsp 頁面。
      1. 象上一步對 index.jsp 節點所做的那樣,在備忘單的 JSP 和 bean 列表中選擇 home.jsp 項,然后單擊 OK;或者在應用程序圖(Login.gph)中雙擊 home.jsp 節點。這將啟動 New JSP File 向導。File Name 已被設置為 home.jsp,而 Model 被設置為 Struts JSP。單擊 Finish。
      2. 切換到頁面設計器的 Source 視圖,并且刪除文本 <P>Place home.jsp's content here.</P>。用下面這些行代替它以實現主頁:(為了節省時間您可以復制/粘貼下面的代碼。)
        <h1><bean:message key="index.title"/></h1>
                            <h2>Welcome <bean:write name="loginForm"  property="userid"/></h2>
                            <h2>To MyBank Home Page</h2>
        請注意,主頁正在使用 loginForm 的用戶標識 bean 特性來輸出用戶標識的輸入??紤]將如何在 Design 視圖中添加 bean:write。還請注意 H2 元素并未使用來自應用程序資源文件的文本,而是在使用靜態文本。正如我們在前面所說的,我們在此說明兩種方法,但是象這樣混合使用文本源不是好的做法。
      3. 切換到 Design 視圖以查看該頁面的外觀。然后保存并關閉 home.jsp。
    4. 現在已經創建了 index.jsp 和 home.jsp 頁面,您可以創建 error.jsp 頁面了。
      1. 在應用程序圖(Login.gph)中,就象您在前面步驟中對 index.jsp 節點所做的那樣雙擊 error.jsp 節點。這將啟動 New JSP File 向導。Model 和 File Name 已經設置好了。單擊 Finish。
      2. 在頁面設計器的 Source 視圖中,刪除文本 <P>Place home.jsp's content here.</P>。利用下面這些行替代它以實現出錯頁面:(為了節省時間您可以復制/粘貼下面的代碼。)
        <h1><bean:message key="index.title"/></h1>
                            <h2>Error Page</h2>
                            <p>
                            <html:errors/>
                            <p>
                            <a href="index.jsp"><b>Return to Login Page</b></a>
      3. 切換到 Design 視圖以查看該頁面的外觀。然后保存并關閉 error.jsp。
    5. 現在,應用程序圖上的所有三個 JSP 頁面都應當添加了色彩。

      圖 29. 帶有已實現的 JSP 的應用程序圖
      帶有已實現的 JSP 的應用程序圖

    實現 ActionForm 類

    1. 現在需要實現 loginForm 類以處理來自 index.jsp 的輸入。這個 ActionForm 類將包含一個字段,以及用于輸入表單中每個域的取值方法(getter 和 setter),并且將提供簡單的域檢查。要幫助實現該類,您將使用 New ActionForm Class 向導。創建 ActionForm 類之后,然后您將把代碼添加到該類中的 validate 方法。
      1. 在應用程序圖(Login.gph)中,雙擊 loginForm 節點。這將啟動 New ActionForm Class 向導。 ActionForm 類名已經被設置為 LoginForm。單擊 Next。 如果 Next 按鈕被任務欄遮蔽了,那么您可能必須最小化任務欄,或者將它拖到屏幕的另一邊。

        圖 30. 啟動 ActionForm 向導
        啟動 ActionForm 向導

      2. 在“Choose new accessors for your ActionForm class”上,展開 MyBankWeb、Web Pages、index.jsp 和 /login。對于 Choose Accessors,請選擇 text:useridpassword:password。單擊 Next。(注:如果您未看到 text:userid 和 password:password,您可能需要關閉 WebSphere Studio,然后重新啟動它。)

        圖 31. 選擇取值方法
        選擇取值方法

      3. 下一個頁面顯示了已選擇的新取值方法(New Accessors)。單擊 Next。
      4. 下一個頁面為您的 ActionForm 類創建映射。請檢查 Configuration File Name 為 WEB-INF/struts-config.xml,而 Mapping Name 為 loginForm。單擊 Finish。

        圖 32. 配置文件名和映射名
        配置文件名和映射名

      5. Java 編輯器現在將打開 LoginForm.java。請注意,該向導已為您創建了 ActionForm 類的大部分內容,包括兩個字段(userid 和 password)及其 setter 和 getter 方法。向下滾動文件至 ActionErrors validate 方法(接近源文件的底部),用以下代碼替代該方法。
        public ActionErrors validate(
                            ActionMapping mapping,
                            HttpServletRequest request) {
                            ActionErrors errors = new ActionErrors();
                            // Validate the fields in your form,
                            // adding each error to this.errors as found
                            if ((getUserid() == null) || (getUserid().length() == 0))
                            errors.add("userid",
                            new ActionError("error.login.nouserid"));
                            if ((getPassword() == null) || (getPassword().length() == 0))
                            errors.add("password",
                            new ActionError("error.login.nopassword"));
                            return errors;
                            } 
      6. 保存并關閉 LoginForm.java。(如果剛才必須最小化任務欄或將其移到不礙事的地方,那么現在您可以恢復它。)
    2. 現在,您可以檢查 Struts 配置文件,也可以不檢查。在 J2EE Navigator 視圖中,雙擊 Web Content/WEB-INF/目錄中的 struts-config.xml,以便用 Struts 配置文件編輯器(Struts Configuration File Editor)打開它。選擇 Form Beans選項卡并選擇 Bean Name 中的 loginForm。檢查配置文件之后關閉它。

      圖 33. 檢查 Struts 配置文件
      檢查 Struts 配置文件

    3. 關閉備忘單的 JSP 和 bean 列表。

    實現操作映射(Action Mapping)和操作類(Action Class)
    實現的最后一部分是實現登錄操作映射和 LoginAction 類。將用來自登錄表單的數據調用 LoginAction 類。該類可用于實現對業務邏輯的調用,就象包裝器類一樣。它還可用于確保調用業務邏輯的狀態和條件是正確的。在本練習中,通過檢查用戶標識和密碼,用它來驗證用戶的權限。

    要驗證用戶標識和密碼,通常將 LTPA 和權限 LDAP 目錄(例如 IBM Directory)或者其它一些權限管理支持(例如 IBM Policy Director)一起使用。在本示例中,將只根據固定的用戶標識和密碼(userid/password)檢查用戶標識和密碼。

    1. 顯示備忘單。您應當正在查看 Create the actions部分。單擊 Perform 按鈕以打開未實現操作的列表。
      1. 就象在上面對 JSP 和 bean 所做的那樣,選擇未實現的操作并單擊 OK。這將打開 New Action Mapping 向導以創建我們的操作映射和操作類。如果您并未在使用備忘單,那么雙擊應用程序圖(Login.gph)中的 login操作映射節點。這樣會啟動 New Action Mapping 向導。Configuration File Name 已經被設置為 WEB-INF/struts-config.xml,Mapping Path 被設置為 /login,Forwards 中,Name 被設置為您定義的名稱( successfailure)。從 Form Bean Name 下拉菜單選擇 loginForm。從 Form Bean Scope 下拉菜單選擇 request。單擊 Next。

        圖 34. New Action Mapping 向導
        New Action Mapping 向導

      2. 在“Create an Action class for your mapping”上,Action Class Name 已經被設置為 LoginAction。單擊 Finish。我們不再需要備忘單的操作列表了,所以在它上面單擊 Close。
      3. Java 編輯器將打開 LoginAction 類文件。向下滾動到 perform 方法,并利用下列代碼替換它。
        public ActionForward perform(
                            ActionMapping mapping,
                            ActionForm form,
                            HttpServletRequest request,
                            HttpServletResponse response)
                            throws IOException, ServletException {
                            ActionErrors errors = new ActionErrors();
                            ActionForward forward = new ActionForward();
                            // return value
                            LoginForm loginForm = (LoginForm) form;
                            try {
                            // do something here
                            if (!loginForm.getUserid().equals("userid")
                            || !loginForm.getPassword().equals("password"))
                            errors.add("login", new ActionError("error.login.failed"));
                            } catch (Exception e) {
                            // Report the error using the appropriate name and ID.
                            errors.add("login", new ActionError("error.login.exception"));
                            }
                            // If a message is required, save the specified key(s)
                            // into the request for use by the <struts:errors> tag.
                            if (!errors.empty()) {
                            saveErrors(request, errors);
                            // Forward control to the failure URI
                            forward = mapping.findForward("failure");
                            } else {
                            // Forward control to the success URI
                            forward = mapping.findForward("success");
                            }
                            // Finish with
                            return (forward);
                            }
      4. 保存并關閉 LoginAction.java。既然已實現了所有組件,那么 Login.gph 上的組件現在都是有顏色的了。

        圖 35. 應用程序圖中的所有組件都已實現
        應用程序圖中的所有組件都已實現

    2. 既然已實現了 LoginAction 類,您可以檢查 Struts 配置文件以查看圖表編輯器(Diagram Editor)和向導做了哪些更改。
      1. 在 J2EE Navigator 視圖中,雙擊 Web Content/WEB-INF/ 目錄中的 struts-config.xml以在 Struts 配置文件編輯器(Struts Configuration File Editor)中打開它。
      2. 選擇 Actions選項卡。然后在 Action Path 中選擇 /login。如果尚未設置好,那么在 Input 域中輸入 /index.jsp。Specify Forwards 的域應當由圖 34 中 Forwards 域的 Name 中為 JSP 頁面指定的名稱填充,這些名稱分別與對應的 JSP 頁面相關(success 與 /home.jsp 相關,而 failure 與 /error.jsp 相關)。

        圖 36. 設置操作輸入
        設置操作輸入

      3. 現在,通過選擇 XML Source 選項卡來檢查 struts-config.xml 文件的 XML 源代碼。
      4. 保存和關閉 struts-config.xml 文件。

    測試 Struts 應用程序
    既然已經完成了 Struts 應用程序,那么可以利用內置的 WebSphere V5.0 測試環境(Test Environment)測試它。

    1. 再次顯示備忘單。您應該正好看到 Run the Web Application部分。單擊執行按鈕(黑色箭頭)。如果您沒有使用備忘單,那么可以在 J2EE Navigator 窗格中選擇 index.jsp。然后用鼠標右鍵單擊 index.jsp,并選擇 Run on Server ...。
    2. 在 Server selection 對話框中,選擇 WebSphere V5.0 Test Environment并單擊 OK。

      圖 37. 設置操作輸入
      設置操作輸入

    3. 該項目將被發布到測試環境服務器上。將啟動服務器(Server),并且打開控制臺(Console)視圖。當服務器準備就緒時,控制臺將顯示一條以“Server server1 open for e-business”結尾的消息,該消息后面跟著另一條以 /index.jsp: init 結尾的消息。

      圖 38. 服務器測試環境啟動
      服務器測試環境啟動

      注:現在如果您關閉已完成的備忘單,那么查看控制臺將更容易。
    4. 然后 index.jsp 將在 Web 瀏覽器中打開。輸入用戶標識 userid和密碼 password。單擊 Login。

      圖 39. 登錄
      登錄

    5. 稍候片刻,應用程序將顯示 .jsp 頁面:

      圖 40. MyBank 主頁
      MyBank 主頁

    6. 單擊瀏覽器的 Back按鈕,并嘗試輸入不同的用戶標識或密碼,以查看出錯頁面。單擊 Login。

      圖 41. 出錯頁面
      出錯頁面

    7. 然后將在 Web 瀏覽器中打開 index.jsp。輸入用戶標識 userid和密碼 password。單擊 Login。

      圖 42. 未輸入用戶標識或密碼
      未輸入用戶標識或密碼

    結束語
    恭喜您!您剛才已經創建了一個基于 Struts 的 Web 應用程序。您使用 WebSphere Studio 構建了 JavaServer Pages、ActionForm、操作類和操作映射。您使用 Struts 應用程序圖表編輯器(Struts Application Diagram Editor)設計和創建了您的應用程序。然后您利用 WebSphere Studio V5.0 測試環境(它包含在 WebSphere Studio 中)測試了您的應用程序。如果您有任何問題,請訪問我們的 技術支持論壇。

    原文轉自:http://www.kjueaiud.com

    評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>