|
Posted on 2006-07-18 22:27 大大毛 閱讀(316) 評(píng)論(0) 編輯 收藏 所屬分類: Struts
2.簡(jiǎn)單的Struts應(yīng)用?? helloapp
???應(yīng)用需求: ??????1.接受name輸入 ??????2.不允許name為空 ??????3.如果是特定姓名,則不向其打招呼 ??????4.滿足條件則向其問好
???例程: ??????可能由于本需求很簡(jiǎn)單,因此例程只使用了一個(gè)JSP作為視圖,從struts-config.xml的設(shè)計(jì)視圖上可以看到邏輯顯得很亂
???具體步驟(Myeclipse): ??????1.先建一個(gè)項(xiàng)目,選擇J2EE下的WEB項(xiàng)目 ??????2.在項(xiàng)目上加入Struts框架 ??????3.選擇struts-config.xml配置文件可進(jìn)入設(shè)計(jì)視圖 ??????4.新建一個(gè)ActionForm Bean,加入name屬性,并根據(jù)此ActionForm bean新建一個(gè)JSP ??????5.新建一個(gè)Action,可以自行另取名稱(不一定必須與form對(duì)應(yīng)),之后還要在Input的JSP文件中將form 的 action改為對(duì)應(yīng)的Action路徑,記住要加.do后綴 ??????6.在Myeclipse中設(shè)置應(yīng)用服務(wù)器,使用Tomcat5 ??????7.發(fā)布
???注意事項(xiàng): ??????ActionForm Bean只能由具體的類進(jìn)入編輯; ??????Action在設(shè)計(jì)視圖上可以加入ActionForward,但是這樣做實(shí)際上只是在配置文件中進(jìn)行了配置,還需要在Action中自行編碼進(jìn)行findForward()才能實(shí)現(xiàn)跳轉(zhuǎn); ??????Action中設(shè)置出ActionErrors后,必須this.saveError(request)才會(huì)產(chǎn)生作用; ??????Struts配置文件的中文問題: ?????????在XML配置文件中設(shè)置的一個(gè)配置文件,實(shí)際上是一個(gè)缺省配置文件,一個(gè)資源對(duì)象實(shí)際上對(duì)應(yīng)多個(gè)配置文件(多語言),文件在名稱上有要求,據(jù)此可以配置多個(gè)語言的資源文件; ?????????Struts實(shí)際上是依靠多個(gè)資源文件來實(shí)現(xiàn)國(guó)際化; ?????????Eclipse自身對(duì)于配置文件采用的編碼方式是ISO8859,因此用它編輯配置文件后,再打開會(huì)是一些問號(hào),JSP頁(yè)面也會(huì)顯示不正常,需要使用JDK的native2ascii來手工轉(zhuǎn)碼,對(duì)于某些版本的Eclipse提供了自行設(shè)置編碼的設(shè)置. ?????????用JInto插件可以簡(jiǎn)化操作,并同時(shí)對(duì)多個(gè)語言的資源文件進(jìn)行編輯(對(duì)照著,很E啊) ?????????多語言效果的測(cè)試: ????????????IE中的Internet選項(xiàng)/語言,可以看到當(dāng)前IE所使用的語言,選擇需要測(cè)試的語言,應(yīng)用后刷新或重開IE窗口即可(不過測(cè)試中失敗了好多次). ?????????????:我試著選擇一個(gè)沒有對(duì)應(yīng)資源的語言,但是卻沒有看到那種使用缺省資源文件的效果,還是中文的. ?????????按書上的,寫成ActionErros.add("key",new ActionMessage("key"));的形式在本機(jī)上出類轉(zhuǎn)換異常,改成ActionErros("key",new ActionError("key"));的方式通過; ?????????<html:cancel />標(biāo)簽: ????????????由ActionForm新建一個(gè)JSP時(shí),Form域中是放上了submit和cancel兩個(gè)按鈕的. ????????????cancel的用途還不太清楚,但是它可以完成一個(gè)submit動(dòng)作,而且在使用cancel進(jìn)行提交時(shí),ActionForm的校驗(yàn)沒有起作用,直接提交到Action進(jìn)行處理,從而忽略了視圖層的檢驗(yàn)
???這一章中有兩點(diǎn)映象: ??????1.書上的例程,在各處都廣泛地引用到了配置文件,這應(yīng)該是出于國(guó)際化的要求,對(duì)于大型項(xiàng)目來說是很重要的; ??????2.校驗(yàn)的問題,該例程將空值校驗(yàn)放入ActionForm檢驗(yàn)中,劃歸于視圖層的檢驗(yàn),而對(duì)于特定姓名拒絕打招呼這樣的檢驗(yàn),放入Action中,屬于業(yè)務(wù)邏輯.
|