程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JDeveloper構建Struts應用程序

JDeveloper構建Struts應用程序

編輯:關於JAVA

內置的Struts支持提高了Oracle Java集成開發環境的生產力。

Jakarta Struts是一個由Apache software foundation支持的開放源碼項目。Struts提供了一個使用標准J2EE(Java 2 Platform,Enterprise Edition)組件(如JavaServer Pagers(JSP)、servlet和JavaBean)構建Model 2--模型-視圖-控制器(Model-View-Controller,MVC)應用設計范例的一個變體--應用程序的框架。

Struts是為解決很多企業應用程序開發項目中所遇到的問題而編寫的。Struts為企業Web應用程序開發過程中所遇到的常見問題(諸如頁流程圖(page-flow)、國際化、可維護性和部署靈活性等提供解決方案。

Oracle9i Jdeveloper中的Struts應用程序開發

Oracle9i Jdeveloper 9.0.3版通過以下特性為基於Struts的J2EE應用程序開發提供全面的支持:

Struts運行時庫。Oracle9i Jdeveloper為Struts 1.1提供特別支持並捆綁了運行時庫和一些Struts Web應用程序示例。當你從jakarta.apache.org下載Struts時,將會同時下載運行時庫和應用程序示例。

Struts代碼生成向導。Oracle9i Jdeveloper通過常用的Struts ActionForm和Action類的代碼生成向導提供增強的Struts開發。Struts初始應用向導(Struts Starter Application Wizard)使你的項目可以通過提供必要的Java庫以及應用文件(如struts-config.xml和ApplicationResources.properties文件)而構建Struts應用程序。

Struts配置編輯器(Struts Configuration Editor)。每個Struts應用程序都使用一個主配置文件struts-config.xml,這是一個跟蹤整個應用程序配置信息的XML文件。Struts配置編輯器提供了一個簡化配置文件編輯的易於使用的用戶界面。

Struts和BC4J

除了為普通的Struts應用程序提供開發支持外,Oracle9i Jdeveloper還提供了一些附加特性,幫助開發那些使用Business Components for Java(BC4J)的Struts應用程序。這些Struts的BC4J特性包括:

Struts BC4J JSP初始應用向導。該向導生成一個簡單的初始應用程序。

完整的Struts BC4J JSP應用向導。該向導生成一個完整的基於Struts的BC4J JSP應用程序。

構建一個簡單的Struts應用程序

真正了解Oracle9i Jdeveloper的Struts功能的最佳方法是構建一個簡單的Struts應用程序。本文中的示例應用程序是一個簡單的登錄表單(form)應用程序。

你可以在otn.oracle.com/ software/products/jdev處下載Oracle9 JDeveloper的評估版。你還可以在otn.oracle.com/sample_code/products/jdev上下載本文中所描述的完整的應用程序項目。該應用程序項目需要的所有文件都包含在SimpleStrusApp.zip文件中。

概述

建立該示例應用程序的第一步是創建表示MVC應用程序范例視圖的JSP文件。這些文件包括:

Login頁面(login.jsp)

Login Success頁面 (success.jsp)

Login Failure頁面 (failure.jsp)

要開始創建這些頁面,你應該先調用JSP頁面向導來建立login.jsp,然後再對該頁面進行定制。login.jsp實際上將使用來自Struts標記庫的JSP標記生成登錄表單及其元素。success.jsp與failure.jsp文件中僅包含提示登錄成功與否的信息。你還需要定義一個Struts ActionForm bean(LoginForm)來表示form(表單)元素和一個Struts Action類(LoginAction)來處理登錄請求。

創建login頁面。要開始創建Struts示例程序,首先要啟動Oracle9i Jdeveloper。要打開整個下載的應用程序,在Oracle9i JDeveloper中點擊File->Open命令,然後選擇SimpleStrutsApp.jws文件。在Oracle9i JDeveloper System Navigator中,展開SimpleStrutsApp.jws和WorkingStruts.jpr節點。本文提及的所有開發文件均位於WorkingStruts.jpr節點下。

要生成一個名為login.jsp的空JSP login頁面,請選擇File->New命令。在New對話框中,Categories下選擇Web tier->JavaServer Pages (JSP)。在Items下選擇JSP Page,然後點擊OK。在New JSP Document對話框中,接受缺省的目錄位置,輸入文件名login.jsp,點擊Ok。

下一步,添加一個基於Structs的HTML表單來包含你的login(登錄)字段。在Component Palette中選擇Struts HTML,並將form標記添加到該頁面中。在JaveServer Page Tag Editor中,設置Action屬性為/login。/login是你將在其下創建的Struts映射。

現在,你已經有了一個空的Struts表單。添加login字段,使用Component Palette來創建Struts text標記。將第一個text(文本)字段的屬性值設置為"userid"。重復該步驟創建password(密碼)字段,但是將其屬性設置為"password"。在你運行該HTML表單時,Struts text標記將提供userid和password字段。這些字段還對應於表示HTML表單中所有字段的Struts ActionForm類。

在每個text字段前面,你還需要添加"Userid:"和"Password:"提示。你可以將這些提示直接添加到JSP頁面中。

注意:如果你希望能動態產生提示,比如,根據所在區域或語言首選項,這些提示可以通過Struts message標記從一個與特定語言的資源文件中產生。

你完成的login.jsp看起來應該像清單1所示的那樣。

創建登錄form bean

一旦完成了Login.jsp,你就可以開始創建Struts ActionForm bean,用於對HTML form字段提供Jave表示。form bean還提供第一層的校驗,例如,所有需要輸入的字段是否包含數據或字段是否有數據位於錯誤的表中,如錯誤的電子郵件地址。

要在Oracle9i JDeveloper中建立Struts ActionForm Bean,請啟動Oracle9i JDeveloper的Action向導,選擇File->New。在打開的New對話框中(Categories下),選擇Web tier->Struts。在Items下選擇ActionForm,然後點擊OK。在New Struts Form Bean對話框中,輸入類名(Name)為LoginForm 、form bean(FormBean Name)為LoginForm,然後點擊OK。

創建ActionForm Bean(LoginForm.java)後,使用Oracle9i JDeveloper的Class Editor將userid和password字段添加到該bean中。Class Editor簡化了為LoginFrom bean添加字段以及相應的getter和setter方法。

為了提供一些初始的form字段校驗,你可以定制缺省form bean的validatre()方法。對於這個應用程序,你只需要檢查字段是否為空即可。你可以通過使用清單2中的代碼替換LoginForm.java中缺省bean的validate()方法代碼來進行這一檢查。

注意清單2中的error.userid.required與error.password.required參數,它們實際指的是你的ApplicationResources.properties文件。你可以在這個文件中定義相應的錯誤信息。

圖1:Struts配置編輯器

構建Login Action類

Struts Action類使你能夠對來自HTML表單的請求進行實際處理。要創建你的登錄請求,可以使用Oracle9i JDeveloper的Struts Action向導建立一個Structs Action。選擇File->New,在New對話框(Categories之下)中選擇Web tier->Struts。在Items下選擇Action,點擊OK。在New Struts Form Bean對話框中,輸入類名(Name)為LoginAction,輸入路徑(Path)為/login,該路徑對應你Structs form標記中指定的動作。

要定制LoginAction類,可以編輯LoginAction.java文件並加入必要的代碼,以便根據表單提交的HTML字段判斷登錄成功與否。這可以通過編輯Action類的execute()方法來完成。使用清單3中的代碼替換execute()方法的缺省內容。

注意,在這個示例程序中,LoginAction指的是實際完成用戶ID與密碼校驗的LoginCheck。在一個現實的應用程序中,這個類可能要根據數據庫或其他安全機制檢查登錄。

為了簡單,我們使用下面十分簡單的登錄檢驗代碼(位於LoginCheck.java中):

package mypackage1;
public class LoginCheck
{
boolean checkUseridPassword(String id, String pwd)
{
if ( id.equals("scott") && pwd.equals("tiger") )
return true;
else
return false;
}
}

組裝在一起

既然你已經完成了這個簡單應用程序的所有工作組件,你需要將它們組裝在一起。易於組裝正是Stucts的主要優點之一;Struts提供了一個單一配置文件struts-config.xml,在該文件中可以將J2EE Web應用程序的所有元素連接在一起。

第一步,打開Struts配置編輯器,如圖1所示,編輯struts-config.xml文件,使用Struts Action映射將LoginAction連接到LoginForm bean。這就使你能夠將LoginAction與LoginForm進行綁定,從而使該應用程序能夠在LoginForm的validate()方法中處理HTML form字段的值,然後將請求傳遞給Action類,在該類中可以確定登錄是否成功。

下一步,為一個成功或失敗的登錄建立全局映射。這也可以在Struts配置編輯器中完成。全局映射使你能夠將一個JSP頁面(如success.jsp)關聯到一個應用程序事件(如成功的登錄),或者將failure.jsp關聯到一個不成功的登錄事件。

現在,應用程序已經正確地組裝在一起了,你可以在Oracle9i JDeveloper中通過本地運行Login JSP頁面進行測試。內嵌的OC4J服務器將啟動,然後你可以看到Login頁面出現。這時你可以通過先提交一個空表單來測試基本的表單校驗。然後輸入非userid=scott、password=tiger的密碼來查看登錄失敗的情況。

結論

本文所描述的應用程序十分簡單,但可以很容易地擴展到其他應用中。它說明了Struct的關鍵開發技術,以及如何Oracle9i JDeveloper中高效地使用它們。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved