2.簡單的Struts應(yīng)用?? helloapp
???應(yīng)用需求:
??????1.接受name輸入
??????2.不允許name為空
??????3.如果是特定姓名,則不向其打招呼
??????4.滿足條件則向其問好
???例程:
??????可能由于本需求很簡單,因此例程只使用了一個(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對應(yīng)),之后還要在Input的JSP文件中將form 的 action改為對應(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è)資源對象實(shí)際上對應(yīng)多個(gè)配置文件(多語言),文件在名稱上有要求,據(jù)此可以配置多個(gè)語言的資源文件;
?????????Struts實(shí)際上是依靠多個(gè)資源文件來實(shí)現(xiàn)國際化;
?????????Eclipse自身對于配置文件采用的編碼方式是ISO8859,因此用它編輯配置文件后,再打開會(huì)是一些問號(hào),JSP頁面也會(huì)顯示不正常,需要使用JDK的native2ascii來手工轉(zhuǎn)碼,對于某些版本的Eclipse提供了自行設(shè)置編碼的設(shè)置.
?????????用JInto插件可以簡化操作,并同時(shí)對多個(gè)語言的資源文件進(jìn)行編輯(對照著,很E啊)
?????????多語言效果的測試:
????????????IE中的Internet選項(xiàng)/語言,可以看到當(dāng)前IE所使用的語言,選擇需要測試的語言,應(yīng)用后刷新或重開IE窗口即可(不過測試中失敗了好多次).
?????????????:我試著選擇一個(gè)沒有對應(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)該是出于國際化的要求,對于大型項(xiàng)目來說是很重要的;
??????2.校驗(yàn)的問題,該例程將空值校驗(yàn)放入ActionForm檢驗(yàn)中,劃歸于視圖層的檢驗(yàn),而對于特定姓名拒絕打招呼這樣的檢驗(yàn),放入Action中,屬于業(yè)務(wù)邏輯.
???應(yīng)用需求:
??????1.接受name輸入
??????2.不允許name為空
??????3.如果是特定姓名,則不向其打招呼
??????4.滿足條件則向其問好
???例程:
??????可能由于本需求很簡單,因此例程只使用了一個(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對應(yīng)),之后還要在Input的JSP文件中將form 的 action改為對應(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è)資源對象實(shí)際上對應(yīng)多個(gè)配置文件(多語言),文件在名稱上有要求,據(jù)此可以配置多個(gè)語言的資源文件;
?????????Struts實(shí)際上是依靠多個(gè)資源文件來實(shí)現(xiàn)國際化;
?????????Eclipse自身對于配置文件采用的編碼方式是ISO8859,因此用它編輯配置文件后,再打開會(huì)是一些問號(hào),JSP頁面也會(huì)顯示不正常,需要使用JDK的native2ascii來手工轉(zhuǎn)碼,對于某些版本的Eclipse提供了自行設(shè)置編碼的設(shè)置.
?????????用JInto插件可以簡化操作,并同時(shí)對多個(gè)語言的資源文件進(jìn)行編輯(對照著,很E啊)
?????????多語言效果的測試:
????????????IE中的Internet選項(xiàng)/語言,可以看到當(dāng)前IE所使用的語言,選擇需要測試的語言,應(yīng)用后刷新或重開IE窗口即可(不過測試中失敗了好多次).
?????????????:我試著選擇一個(gè)沒有對應(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)該是出于國際化的要求,對于大型項(xiàng)目來說是很重要的;
??????2.校驗(yàn)的問題,該例程將空值校驗(yàn)放入ActionForm檢驗(yàn)中,劃歸于視圖層的檢驗(yàn),而對于特定姓名拒絕打招呼這樣的檢驗(yàn),放入Action中,屬于業(yè)務(wù)邏輯.