付費下載
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第七章類型轉(zhuǎn)換本章目標(biāo)OGNL類型轉(zhuǎn)換集合類型轉(zhuǎn)換自定義類型轉(zhuǎn)換類型轉(zhuǎn)換Java是強(qiáng)類型語言,而MVC框架從用戶接受過來的數(shù)據(jù)均是字符串,那么MVC框架就需要將請求的字符串轉(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ù)對于表現(xiàn)層,主要是需要完成由用戶輸入的字符串形式的數(shù)據(jù)轉(zhuǎn)換為對應(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代碼運行效果如下圖集合類型轉(zhuǎn)換Struts2對集合類型轉(zhuǎn)換提供了很好的支持可以使用集合對象來保存表單提交的數(shù)據(jù)對于表單提交多個相同類別的信息很有幫助支持如:List、Map、Set等對集合的支持在Action中,將相關(guān)屬性的泛型取消在對應(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ù)合類型是集合元素類型的完全限定名對List的支持-1Book.java代碼對List的支持-2BookListAction.java代碼struts.xml片段代碼對List的支持-3在BookListAction.java同目錄下添加BookListAperties添加Action中books集合屬性的集合元素的類型對List的支持-4orderList.jsp代碼對List的支持-5bookList.jsp代碼運行結(jié)果如下圖對Map的支持-1BookMapAction.java代碼對Map的支持-2struts.xml代碼在BookMapAction.java所在目錄下添加BookMapAperties文件對Map的支持-3orderMap.jsp代碼bookMap.jsp代碼對Map的支持-4運行效果如下圖orderMap.jsp頁面orderMap.jsp頁面對Set的支持Set集合并不維護(hù)元素加入的順序,也不能通過索引來訪問元素在Struts2提供了使用JavaBean對象的屬性來索引集合元素方式,通過元素屬性值來唯一獲取Set集合中的元素用于索引集合元素的屬性在<Action類名>-perties文件中通過KeyProperty_xxx=yyy來指定其中,xxx表示集合類型的屬性,yyy表示是集合元素(即JavaBean對象)的屬性名對Set的支持-1BookSetAction.java代碼struts.xml代碼對Set的支持-2在BookSetAction.java所在目錄下添加BookSetAperties文件說明在BookSetAction類中必須要實例化books屬性第2行,指定集合對象第3行,表示引用的集合元素為null時,框架會自動實例化該對象對Set的支持-3orderSet.jsp代碼對Set的支持-4bookSet.jsp代碼運行結(jié)果如下圖自定義類型轉(zhuǎn)換器-1如果Struts2內(nèi)置類型轉(zhuǎn)換器不能滿足應(yīng)用需求,那么可以另外開發(fā)一個類型轉(zhuǎn)換器,從而自動實現(xiàn)類型轉(zhuǎn)換需要實現(xiàn)ognl.TypeConverter接口,實現(xiàn)其中的convertValue()方法通常,可以繼承OGNL中的工具類ognl.DefaultTypeConverter,它已實現(xiàn)ognl.TypeConverter接口,并提供了一個簡化的convertValue()方法,如下所示:convertValue(Mapcontext,Objectvalue,ClasstoType)方法context:表示OGNL上下文的Map對象value:表示需要轉(zhuǎn)換的對象toType:表示需要轉(zhuǎn)換的目標(biāo)類型自定義類型轉(zhuǎn)換器-2DateConverter.java代碼自定義類型轉(zhuǎn)換器-3通常,還可以繼承Struts2中的抽象類org.apache.struts2.util.StrutsTypeConverter,方法如下publicabstractObjectconvertFromString(Mapcontext,String[]values,ClasstoClass)表示將一個或多個字符串值轉(zhuǎn)換為指定的類型context,表示action上下文的Map對象values,表示要轉(zhuǎn)換的字符串值toClass,表示要轉(zhuǎn)換的目標(biāo)類型publicabstractStringconvertToString(Mapcontext,Objectobject)表示將指定的對象轉(zhuǎn)換為指定格式的字符串context,表示action上下文的Map對象object,表示要轉(zhuǎn)換的對象自定義類型轉(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)換器配置針對某個特定類的類型轉(zhuǎn)換器,方法是在類所在的包中創(chuàng)建<ClassName>-c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年寧夏理工學(xué)院馬克思主義基本原理概論期末考試模擬題及答案解析(奪冠)
- 2025年潁上縣招教考試備考題庫帶答案解析(必刷)
- 2025年鄭州理工職業(yè)學(xué)院單招職業(yè)技能考試題庫帶答案解析
- 2026年生物學(xué)基礎(chǔ)理論與生物技術(shù)應(yīng)用試題集
- 電梯拆裝應(yīng)急預(yù)案(3篇)
- 醫(yī)院醫(yī)師職業(yè)道德規(guī)范制度
- 醫(yī)院醫(yī)療廢物處置設(shè)施效果評價制度
- 2026年市場營銷策略考試要點與題目解析
- 醫(yī)院醫(yī)療廢物儲存與處理制度
- 醫(yī)療廢棄物處理與環(huán)境保護(hù)制度
- 箱涵預(yù)制、安裝、現(xiàn)澆施工方案
- 2026屆杭州高級中學(xué)高二上數(shù)學(xué)期末聯(lián)考試題含解析
- 2026年陜西氫能產(chǎn)業(yè)發(fā)展有限公司所屬單位社會公開招聘備考題庫及1套參考答案詳解
- 2026年及未來5年中國無取向硅鋼片行業(yè)市場深度分析及發(fā)展趨勢預(yù)測報告
- 棄土場規(guī)范規(guī)章制度
- 2026年水下機(jī)器人勘探報告及未來五至十年深海資源報告
- 專家解析:渲染,烘托等的區(qū)別課件
- 廣州花城匯UUPARK招商手冊
- 20S517 排水管道出水口
- (完整word)長沙胡博士工作室公益發(fā)布新加坡SM2考試物理全真模擬試卷(附答案解析)
- GB/T 6682-2008分析實驗室用水規(guī)格和試驗方法
評論
0/150
提交評論