eclipse中配置 structs(轉(zhuǎn)帖)
Posted on 2006-11-17 18:20 hays(海納百川) 閱讀(4175) 評(píng)論(0) 編輯 收藏 所屬分類: 配置作者:baggio785
來(lái)源:http://blog.csdn.net/baggio785
原文地址:http://blog.csdn.net/baggio785/archive/2006/03/10/620535.aspx(轉(zhuǎn)載請(qǐng)注明出處)
日期:2006-3-9
關(guān)鍵詞:Eclipse,MyEclipse,Struts,Java
前言
本文根據(jù)實(shí)例詳細(xì)介紹了如果在Eclipse中配置并開(kāi)發(fā)Struts。此前在網(wǎng)上也看到過(guò)不少此類文章,而且還是有不少網(wǎng)友問(wèn)此類問(wèn)題。所以想根據(jù)自己的實(shí)際經(jīng)驗(yàn),并結(jié)合例子寫一篇詳細(xì)的文章,一個(gè)是方便大家,再一個(gè)也是檢驗(yàn)一下自己的知識(shí)。
本文是偶的一些拙見(jiàn),有不正確的地方請(qǐng)大家多多評(píng)論指正。
開(kāi)發(fā)環(huán)境
JDK1_4_03,點(diǎn)擊下載
tomcat5.0.28,點(diǎn)擊下載
Eclipse3.1.2,點(diǎn)擊下載;下載中文包,中文包是3.1.1,但是也適用3.1.2
MyEcilpse4.1,點(diǎn)擊下載MyEcilpse4.1及破解補(bǔ)丁
TomcatPlugin插件,點(diǎn)擊下載TomcatPlugin插件
更多Eclipse插件下載,點(diǎn)擊進(jìn)入
需求
本文所要結(jié)合的Struts應(yīng)用實(shí)例為用戶登錄(logon),用戶登錄(logon)的需求為:
1??接收用戶名和密碼,跳轉(zhuǎn)到成功頁(yè)面,并提示“<username>歡迎您登錄!”。
2??如果用戶名為空就提交表單,則提示“請(qǐng)輸入用戶名!”。
3??如果密碼為空就提交表單,則提示“請(qǐng)輸入密碼!”。
4??如果輸入非法用戶名,則提示“請(qǐng)輸入正確的用戶名!”。
5??通過(guò)模型組件,保存登錄信息。
登錄應(yīng)用實(shí)例的框架介紹
用戶登錄(logon)應(yīng)用由以下模塊組成:
1??模型(M):模型為一個(gè)JAVABEAN組件-SaveLogon,包含username(用戶名)和userpassword(密碼)兩個(gè)屬性,提供讀取和設(shè)置屬性的方法get/set,以及保存登錄信息的方法saveToDb()。saveToDb的任務(wù)是把登錄信息保存到持久化存儲(chǔ)系統(tǒng)(例如數(shù)據(jù)庫(kù))。
2??視圖(V):視圖包括兩個(gè)JSP文件,以及一個(gè)ActionForm Bean-logonForm。JSP文件分別為:logon.jsp、success.jsp。logon.jsp負(fù)責(zé)接受用戶輸入的用戶名和密碼以及顯示出錯(cuò)信息,success.jsp負(fù)責(zé)顯示登錄成功信息。
3??控制器(C):控制器為Action類logonAction。對(duì)數(shù)據(jù)進(jìn)行業(yè)務(wù)邏輯驗(yàn)證、調(diào)用模型組件保存登錄信息、選擇視圖組件返回給用戶。
Struts的工作機(jī)制
用戶在視圖組件(logon.jsp)中輸入用戶名和密碼并提交HTML表單,Struts框架會(huì)先讀取WEB.XML中關(guān)于servlet的配置,然后自動(dòng)將表單數(shù)據(jù)封裝到ActionForm Bean中,在本例中是logonForm。logonForm會(huì)對(duì)提交的數(shù)據(jù)進(jìn)行數(shù)據(jù)合法性驗(yàn)證(例如最短長(zhǎng)度、是否包含非法字符等)。如果ActionForm Bean驗(yàn)證未通過(guò),則logonForm返回ActionErrors對(duì)象,Struts框架會(huì)把ActionErrors對(duì)象保存在request范圍內(nèi),并把請(qǐng)求轉(zhuǎn)發(fā)到視圖組件,并在視圖組件中通過(guò)<html:errors/>標(biāo)簽,展示request范圍內(nèi)的ActionErrors對(duì)象所包含的錯(cuò)誤信息;如果通過(guò)ActionForm Bean驗(yàn)證,則logonForm返回的ActionErrors對(duì)象為NULL,Struts框架將表單數(shù)據(jù)提交到控制器組件logonAction,控制器對(duì)表單數(shù)據(jù)進(jìn)行業(yè)務(wù)邏輯驗(yàn)證,如果logonAction驗(yàn)證未通過(guò),則創(chuàng)建包含錯(cuò)誤信息的ActionMessages對(duì)象,并通過(guò)saveErrors方法把ActionMessages對(duì)象保存到request范圍內(nèi),并把請(qǐng)求轉(zhuǎn)發(fā)到視圖組件,并在視圖組件中通過(guò)<html:errors/>標(biāo)簽,展示request范圍內(nèi)的ActionErrors對(duì)象所包含的錯(cuò)誤信息;如果logonAction驗(yàn)證通過(guò),則Struts框架訪問(wèn)模型組件,然后Struts框架會(huì)返回ActionFoward對(duì)象,并根據(jù)Struts-config.xml文件的配置情況,決定將ActionFoward對(duì)象包含的轉(zhuǎn)發(fā)信息傳遞到那一個(gè)視圖組件。
部署Struts框架
Struts的工作機(jī)制大家都有了一定的了解了,現(xiàn)在介紹如何在Eclipse中部署Struts框架。
本文的環(huán)境前文已經(jīng)提到,Eclipse以及其插件MyEclipse和TomcatPlugin的安裝本文不介紹,請(qǐng)參考其他文章。關(guān)于Eclipse的相關(guān)文章請(qǐng)看: http://blog.csdn.net/baggio785/category/148174.aspx 。
1??? 新建一個(gè)項(xiàng)目
1)? 選擇Java >> Tomcat Project,下一步,如圖一
(圖一)
2)填寫項(xiàng)目名稱,如果不采用項(xiàng)目所在目錄的缺省值,請(qǐng)修改,點(diǎn)擊完成。如圖二
(圖二)
2??? 創(chuàng)建Struts框架
1)??? 右鍵選擇項(xiàng)目 >> 新建 >> 其他 >> MyEclipse >> Web-Struts >> Struts 1.2 >> Struts 1.2 Form,Action & JSP。如圖三。如果這一步出現(xiàn)錯(cuò)誤,本文不做描述,請(qǐng)參考我的另一邊文章-MyEclipse中創(chuàng)建Struts出現(xiàn)錯(cuò)誤的解決辦法。
(圖三)
2)??? 配置Struts ActionForm??
因?yàn)楸疚牡腟truts應(yīng)用實(shí)例為用戶登錄,所以Use case選用logon。Superclass選擇如圖所示,其他默認(rèn)。如圖四
(圖四)
接下來(lái)填寫Optional Details,輸入Form表單項(xiàng),本例為用戶名(username)和密碼(userpassword)。點(diǎn)擊Add,輸入請(qǐng)參考圖五、圖六。
(圖五)
(圖六)
輸后完畢,Optional Details的Form Properties中會(huì)顯示。如圖七
(圖七)
Methods選項(xiàng)卡的設(shè)置我們采用默認(rèn)設(shè)置,不去修改。
點(diǎn)擊JSP選項(xiàng)卡,將“Create JSP form”選項(xiàng)的勾選中,采用默認(rèn)設(shè)置“/form/logon.jsp”。如圖八
(圖八)
3)??? 配置Struts Action
以上步驟完成了對(duì)Form的配置,下面配置Action。
在圖八中點(diǎn)擊下一步,采用默認(rèn)即可。如圖九
(圖九)
Parameter和Methods選項(xiàng)也采用默認(rèn)。
點(diǎn)擊Forwards選項(xiàng)卡,點(diǎn)擊Add,配置成功頁(yè)面信息。本文選取根目錄的success.jsp作為成功頁(yè)面,Name為logon_sc。如圖十
(圖十)
輸后完畢,Optional Details的Forwards中會(huì)顯示。如圖十一
(圖十一)
點(diǎn)擊完成。
Struts已經(jīng)配置完畢。看看Eclipse中,項(xiàng)目中多了一些東東,例如struts相關(guān)的jar,以及struts-config.xml和tld文件。struts-config.xml的代碼如下:
代碼清單一(struts-config.xml)