1. 程式人生 > >手把手教你在Eclipse中配置開發Struts(一)

手把手教你在Eclipse中配置開發Struts(一)

作者:baggio785

日期:2006-3-9

關鍵詞:Eclipse,MyEclipse,Struts,Java

前言

本文根據例項詳細介紹瞭如果在Eclipse中配置並開發Struts。此前在網上也看到過不少此類文章,而且還是有不少網友問此類問題。所以想根據自己的實際經驗,並結合例子寫一篇詳細的文章,一個是方便大家,再一個也是檢驗一下自己的知識。

本文是偶的一些拙見,有不正確的地方請大家多多評論指正。

開發環境

JDK1_4_03,點選下載
tomcat5.0.28,點選下載
Eclipse3.1.2,點選下載下載中文包,中文包是3.1.1,但是也適用3.1.2
MyEcilpse4.1,點選下載MyEcilpse4.1及破解補丁


TomcatPlugin外掛,點選下載TomcatPlugin外掛
更多Eclipse外掛下載,點選進入

需求

本文所要結合的Struts應用例項為使用者登入(logon),使用者登入(logon)的需求為:

1  接收使用者名稱和密碼,跳轉到成功頁面,並提示“<username>歡迎您登入!”。
2  如果使用者名稱為空就提交表單,則提示“請輸入使用者名稱!”。
3  如果密碼為空就提交表單,則提示“請輸入密碼!”。
4  如果輸入非法使用者名稱,則提示“請輸入正確的使用者名稱!”。
5  通過模型元件,儲存登入資訊。

登入應用例項的框架介紹

使用者登入(logon)應用由以下模組組成:
1  模型(M):模型為一個JAVABEAN元件-SaveLogon,包含username(使用者名稱)和userpassword(密碼)兩個屬性,提供讀取和設定屬性的方法get/set,以及儲存登入資訊的方法saveToDb()。saveToDb的任務是把登入資訊儲存到持久化儲存系統(例如資料庫)。
2  檢視(V):檢視包括兩個JSP檔案,以及一個ActionForm Bean-logonForm。JSP檔案分別為:logon.jsp、success.jsp。logon.jsp負責接受使用者輸入的使用者名稱和密碼以及顯示出錯資訊,success.jsp負責顯示登入成功資訊。
3  控制器(C):控制器為Action類logonAction。對資料進行業務邏輯驗證、呼叫模型元件儲存登入資訊、選擇檢視元件返回給使用者。

Struts的工作機制

使用者在檢視元件(logon.jsp)中輸入使用者名稱和密碼並提交HTML表單,Struts框架會先讀取WEB.XML中關於servlet的配置,然後自動將表單資料封裝到ActionForm Bean中,在本例中是logonForm。logonForm會對提交的資料進行資料合法性驗證(例如最短長度、是否包含非法字元等)。如果ActionForm Bean驗證未通過,則logonForm返回ActionErrors物件,Struts框架會把ActionErrors物件儲存在request範圍內,並把請求轉發到檢視元件,並在檢視元件中通過<html:errors/>標籤,展示request範圍內的ActionErrors物件所包含的錯誤資訊;如果通過ActionForm Bean

驗證,則logonForm返回的ActionErrors物件為NULL,Struts框架將表單資料提交到控制器元件logonAction,控制器對錶單資料進行業務邏輯驗證,如果logonAction驗證未通過,則建立包含錯誤資訊的ActionMessages物件,並通過saveErrors方法把ActionMessages物件儲存到request範圍內,並把請求轉發到檢視元件,並在檢視元件中通過<html:errors/>標籤,展示request範圍內的ActionErrors物件所包含的錯誤資訊;如果logonAction驗證通過,則Struts框架訪問模型元件,然後Struts框架會返回ActionFoward物件,並根據Struts-config.xml檔案的配置情況,決定將ActionFoward物件包含的轉發資訊傳遞到那一個檢視元件。

部署Struts框架

Struts的工作機制大家都有了一定的瞭解了,現在介紹如何在Eclipse中部署Struts框架。

本文的環境前文已經提到,Eclipse以及其外掛MyEclipse和TomcatPlugin的安裝本文不介紹,請參考其他文章。關於Eclipse的相關文章請看:http://blog.csdn.net/baggio785/category/148174.aspx

1    新建一個專案

1)  選擇Java >> Tomcat Project,下一步,如圖一


(圖一)

2)填寫專案名稱,如果不採用專案所在目錄的預設值,請修改,點選完成。如圖二


(圖二)

2    建立Struts框架

1)    右鍵選擇專案 >> 新建 >> 其他 >> MyEclipse >> Web-Struts >> Struts 1.2 >> Struts 1.2 Form,Action & JSP。如圖三。如果這一步出現錯誤,本文不做描述,請參考我的另一邊文章-MyEclipse中建立Struts出現錯誤的解決辦法


(圖三)

2)    配置Struts ActionForm  

因為本文的Struts應用例項為使用者登入,所以Use case選用logon。Superclass選擇如圖所示,其他預設。如圖四


(圖四)

接下來填寫Optional Details,輸入Form表單項,本例為使用者名稱(username)和密碼(userpassword)。點選Add,輸入請參考圖五、圖六。


(圖五)


(圖六)

輸後完畢,Optional Details的Form Properties中會顯示。如圖七


(圖七)

Methods選項卡的設定我們採用預設設定,不去修改。

點選JSP選項卡,將“Create JSP form”選項的勾選中,採用預設設定“/form/logon.jsp”。如圖八


(圖八)

3)    配置Struts Action

以上步驟完成了對Form的配置,下面配置Action。

在圖八中點選下一步,採用預設即可。如圖九


(圖九)

Parameter和Methods選項也採用預設。

點選Forwards選項卡,點選Add,配置成功頁面資訊。本文選取根目錄的success.jsp作為成功頁面,Name為logon_sc。如圖十


(圖十)

輸後完畢,Optional Details的Forwards中會顯示。如圖十一


(圖十一)

點選完成。

Struts已經配置完畢。看看Eclipse中,專案中多了一些東東,例如struts相關的jar,以及struts-config.xml和tld檔案。struts-config.xml的程式碼如下:

程式碼清單一(struts-config.xml)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>

<data-sources />

<form-beans >

<!--這裡是ActionForm的配置資訊,ActionForm Bean的name為logonForm,對應的類為com.mystruts.struts.form.LogonForm-->

<form-bean name="logonForm" type="com.mystruts.struts.form.LogonForm" />

</form-beans>

<global-exceptions />

<global-forwards />

<action-mappings >

<!--這裡是Action元件的配置資訊,描述了從特定的請求路徑到響應的Action的對映-->

<!--attribute設定Action關聯的ActionForm在request或者session範圍內的key.就是在request或者session共享內的名稱-->

<!--input指定包含表單的URL,當表單驗證失敗的時候傳送的URL-->

<!--name指定和該Action關聯的Form名字.該名字必須是在form-bean中定義過的,可寫可不寫-->

<!--path指定請求訪問Action的路徑,必須以/開頭-->

<!--scope指定Form的存在範圍,例如request-->

<!--type指定Action元件對應的類-->

<action

attribute="logonForm"

input="/form/logon.jsp"

name="logonForm"

path="/logon"

scope="request"

type="com.mystruts.struts.action.LogonAction">

<!--這裡是forward,即區域性轉發配置資訊,登入成功後轉向/success.jsp,name為logon_sc-->

<forward

name="logon_sc"

path="/success.jsp"

/>

</action>

</action-mappings>

<!--這裡是訊息資原始檔的配置資訊,用來配置Resource Bundle.用於存放本地文字訊息檔案。parameter指定檔名,不包含字尾名。-->

<message-resources parameter="com.mystruts.struts.ApplicationResources" />

</struts-config>