




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第七章類型轉(zhuǎn)換本章目標(biāo)OGNL類型轉(zhuǎn)換集合類型轉(zhuǎn)換自定義類型轉(zhuǎn)換類型轉(zhuǎn)換Java是強(qiáng)類型語言,而MVC框架從用戶接受過來的數(shù)據(jù)均是字符串,那么MVC框架就需要將請(qǐng)求的字符串轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)類型Struts2提供了非常強(qiáng)大的類型轉(zhuǎn)換支持Struts2類型轉(zhuǎn)換機(jī)制的基礎(chǔ)是OGNL表達(dá)式可以使用ONGL表達(dá)式來命名參數(shù)例如,Action類有user屬性(類型為User,并有相應(yīng)的setter和getter方法),那在表單頁面相應(yīng)的使用OGNL表達(dá)式命名,如、user.age等表現(xiàn)層數(shù)據(jù)處理在B/S應(yīng)用中,表現(xiàn)層主要用于與用戶交互,數(shù)據(jù)的流向主要是輸入數(shù)據(jù)和輸出數(shù)據(jù),也就是用戶向服務(wù)器提交數(shù)據(jù),服務(wù)器向用戶展示數(shù)據(jù)對(duì)于表現(xiàn)層,主要是需要完成由用戶輸入的字符串形式的數(shù)據(jù)轉(zhuǎn)換為對(duì)應(yīng)的數(shù)據(jù)類型內(nèi)置的類型轉(zhuǎn)換器Struts2已經(jīng)完成大多數(shù)常用的類型轉(zhuǎn)換器boolean和Booleanchar和Characterint和Integerlong和Longfloat和Floatdouble和DoubleDatearraycollection內(nèi)置類型轉(zhuǎn)換器-1User.java代碼內(nèi)置類型轉(zhuǎn)換器-2RegUserAction.java代碼struts.xml片段代碼注意:屬性及方法名稱內(nèi)置類型轉(zhuǎn)換器-3regUser.jsp代碼內(nèi)置類型轉(zhuǎn)換器-4e.jsp代碼運(yùn)行效果如下圖集合類型轉(zhuǎn)換Struts2對(duì)集合類型轉(zhuǎn)換提供了很好的支持可以使用集合對(duì)象來保存表單提交的數(shù)據(jù)對(duì)于表單提交多個(gè)相同類別的信息很有幫助支持如:List、Map、Set等對(duì)集合的支持在Action中,將相關(guān)屬性的泛型取消在對(duì)應(yīng)的Action目錄下創(chuàng)建名為<Action類>-perties的文件在該文件下指定集合元素的數(shù)據(jù)類型如果集合是java.util.List,格式為:Element_xxx=復(fù)合類型其中Element是固定的,xxx表示Action中屬性的集合屬性名,復(fù)合類型是集合元素類型的完全限定名如果集合是java.util.Map,格式為:Key_xxx=復(fù)合類型其中Key是固定的,xxx表示Action中屬性的集合屬性名,復(fù)合類型是集合元素類型的完全限定名對(duì)List的支持-1Book.java代碼對(duì)List的支持-2BookListAction.java代碼struts.xml片段代碼對(duì)List的支持-3在BookListAction.java同目錄下添加BookListAperties添加Action中books集合屬性的集合元素的類型對(duì)List的支持-4orderList.jsp代碼對(duì)List的支持-5bookList.jsp代碼運(yùn)行結(jié)果如下圖對(duì)Map的支持-1BookMapAction.java代碼對(duì)Map的支持-2struts.xml代碼在BookMapAction.java所在目錄下添加BookMapAperties文件對(duì)Map的支持-3orderMap.jsp代碼bookMap.jsp代碼對(duì)Map的支持-4運(yùn)行效果如下圖orderMap.jsp頁面orderMap.jsp頁面對(duì)Set的支持Set集合并不維護(hù)元素加入的順序,也不能通過索引來訪問元素在Struts2提供了使用JavaBean對(duì)象的屬性來索引集合元素方式,通過元素屬性值來唯一獲取Set集合中的元素用于索引集合元素的屬性在<Action類名>-perties文件中通過KeyProperty_xxx=yyy來指定其中,xxx表示集合類型的屬性,yyy表示是集合元素(即JavaBean對(duì)象)的屬性名對(duì)Set的支持-1BookSetAction.java代碼struts.xml代碼對(duì)Set的支持-2在BookSetAction.java所在目錄下添加BookSetAperties文件說明在BookSetAction類中必須要實(shí)例化books屬性第2行,指定集合對(duì)象第3行,表示引用的集合元素為null時(shí),框架會(huì)自動(dòng)實(shí)例化該對(duì)象對(duì)Set的支持-3orderSet.jsp代碼對(duì)Set的支持-4bookSet.jsp代碼運(yùn)行結(jié)果如下圖自定義類型轉(zhuǎn)換器-1如果Struts2內(nèi)置類型轉(zhuǎn)換器不能滿足應(yīng)用需求,那么可以另外開發(fā)一個(gè)類型轉(zhuǎn)換器,從而自動(dòng)實(shí)現(xiàn)類型轉(zhuǎn)換需要實(shí)現(xiàn)ognl.TypeConverter接口,實(shí)現(xiàn)其中的convertValue()方法通常,可以繼承OGNL中的工具類ognl.DefaultTypeConverter,它已實(shí)現(xiàn)ognl.TypeConverter接口,并提供了一個(gè)簡化的convertValue()方法,如下所示:convertValue(Mapcontext,Objectvalue,ClasstoType)方法context:表示OGNL上下文的Map對(duì)象value:表示需要轉(zhuǎn)換的對(duì)象toType:表示需要轉(zhuǎn)換的目標(biāo)類型自定義類型轉(zhuǎn)換器-2DateConverter.java代碼自定義類型轉(zhuǎn)換器-3通常,還可以繼承Struts2中的抽象類org.apache.struts2.util.StrutsTypeConverter,方法如下publicabstractObjectconvertFromString(Mapcontext,String[]values,ClasstoClass)表示將一個(gè)或多個(gè)字符串值轉(zhuǎn)換為指定的類型context,表示action上下文的Map對(duì)象values,表示要轉(zhuǎn)換的字符串值toClass,表示要轉(zhuǎn)換的目標(biāo)類型publicabstractStringconvertToString(Mapcontext,Objectobject)表示將指定的對(duì)象轉(zhuǎn)換為指定格式的字符串context,表示action上下文的Map對(duì)象object,表示要轉(zhuǎn)換的對(duì)象自定義類型轉(zhuǎn)換器-4BirthdayConverter.java代碼自定義類型轉(zhuǎn)換-1Student.java代碼自定義類型轉(zhuǎn)換-2StudentAction.java代碼struts.xml片段代碼自定義類型轉(zhuǎn)換-3studentRegister.jsp代碼studentInfo.jsp自定義類型轉(zhuǎn)換-4配置自定義轉(zhuǎn)換器應(yīng)用于全局范圍的類型轉(zhuǎn)換器通常在WEB-INF/classes目錄下創(chuàng)建perties文件,并提供相應(yīng)的屬性定義。其中,屬性是要轉(zhuǎn)換的類的名稱,屬性值是類型轉(zhuǎn)換器的名稱例如:java.util.Date=xx.xx.XxxConverter應(yīng)用與特定類的轉(zhuǎn)換器配置針對(duì)某個(gè)特定類的類型轉(zhuǎn)換器,方法是在類所在的包中創(chuàng)建<ClassName>-c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司黨建廉潔活動(dòng)方案
- 公司內(nèi)部文創(chuàng)活動(dòng)方案
- 公司創(chuàng)意活動(dòng)方案
- 公司單人活動(dòng)策劃方案
- 公司吃飯抽獎(jiǎng)策劃方案
- 公司團(tuán)建黨建活動(dòng)方案
- 公司增殖放流活動(dòng)方案
- 公司夠級(jí)游戲活動(dòng)方案
- 公司女工委活動(dòng)方案
- 公司孝心活動(dòng)方案
- 廣播電視節(jié)目評(píng)析期末考試資料
- 2024年山東省煙臺(tái)市中考生物試題卷(含答案解析)
- 重慶市沙坪壩區(qū)第八中學(xué)校2023-2024學(xué)年八年級(jí)下學(xué)期期末英語試題(解析版)
- 上海市徐匯區(qū)2023-2024學(xué)年七年級(jí)下學(xué)期數(shù)學(xué)期末練習(xí)卷
- 植物拓染非物質(zhì)文化遺產(chǎn)傳承拓花草之印染自然之美課件
- TD/T 1044-2014 生產(chǎn)項(xiàng)目土地復(fù)墾驗(yàn)收規(guī)程(正式版)
- 霧化吸入團(tuán)體標(biāo)準(zhǔn)解讀
- 信息光學(xué)智慧樹知到期末考試答案章節(jié)答案2024年北京工業(yè)大學(xué)
- 電大財(cái)務(wù)大數(shù)據(jù)分析編程作業(yè)3
- MOOC 質(zhì)量工程技術(shù)基礎(chǔ)-北京航空航天大學(xué) 中國大學(xué)慕課答案
- 【數(shù)字人民幣對(duì)貨幣政策的影響及政策探究12000字(論文)】
評(píng)論
0/150
提交評(píng)論