hays

          海納百川
          posts - 25, comments - 48, trackbacks - 0, articles - 0
            BlogJava :: 首頁(yè) ::  :: 聯(lián)系 :: 聚合  :: 管理

          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)

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "

          <struts-config>

          <data-sources />

          <form-beans >

          <!--這里是ActionForm的配置信息,ActionForm Bean的name為logonForm,對(duì)應(yīng)的類為com.mystruts.struts.form.LogonForm-->

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

          </form-beans>

          <global-exceptions />

          <global-forwards />

          <action-mappings >

          <!--這里是Action組件的配置信息,描述了從特定的請(qǐng)求路徑到響應(yīng)的Action的映射-->

          <!--attribute設(shè)置Action關(guān)聯(lián)的ActionForm在request或者session范圍內(nèi)的key.就是在request或者session共享內(nèi)的名稱-->

          <!--input指定包含表單的URL,當(dāng)表單驗(yàn)證失敗的時(shí)候發(fā)送的URL-->

          <!--name指定和該Action關(guān)聯(lián)的Form名字.該名字必須是在form-bean中定義過(guò)的,可寫可不寫-->

          <!--path指定請(qǐng)求訪問(wèn)Action的路徑,必須以/開(kāi)頭-->

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

          <!--type指定Action組件對(duì)應(yīng)的類-->

          <action

          attribute="logonForm"

          input="/form/logon.jsp"

          name="logonForm"

          path="/logon"

          scope="request"

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

          <!--這里是forward,即局部轉(zhuǎn)發(fā)配置信息,登錄成功后轉(zhuǎn)向/success.jsp,name為logon_sc-->

          <forward

          name="logon_sc"

          path="/success.jsp"

          />

          </action>

          </action-mappings>

          <!--這里是消息資源文件的配置信息,用來(lái)配置Resource Bundle.用于存放本地文本消息文件。parameter指定文件名,不包含后綴名。-->

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

          </struts-config>


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 广元市| 胶南市| 桂林市| 马龙县| 交城县| 株洲市| 永康市| 万全县| 庐江县| 平安县| 陇南市| 富锦市| 邛崃市| 潮州市| 凯里市| 通江县| 娱乐| 鄂温| 湾仔区| 姚安县| 璧山县| 汝阳县| 巴林左旗| 秦皇岛市| 梁河县| 霞浦县| 广宗县| 封丘县| 甘南县| 东城区| 德化县| 阿图什市| 临沂市| 林芝县| 德惠市| 桃源县| 香港 | 义马市| 来安县| 大关县| 东阳市|