




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第七章類型轉換本章目標OGNL類型轉換集合類型轉換自定義類型轉換類型轉換Java是強類型語言,而MVC框架從用戶接受過來的數據均是字符串,那么MVC框架就需要將請求的字符串轉換成相應的數據類型Struts2提供了非常強大的類型轉換支持Struts2類型轉換機制的基礎是OGNL表達式可以使用ONGL表達式來命名參數例如,Action類有user屬性(類型為User,并有相應的setter和getter方法),那在表單頁面相應的使用OGNL表達式命名,如、user.age等表現層數據處理在B/S應用中,表現層主要用于與用戶交互,數據的流向主要是輸入數據和輸出數據,也就是用戶向服務器提交數據,服務器向用戶展示數據對于表現層,主要是需要完成由用戶輸入的字符串形式的數據轉換為對應的數據類型內置的類型轉換器Struts2已經完成大多數常用的類型轉換器boolean和Booleanchar和Characterint和Integerlong和Longfloat和Floatdouble和DoubleDatearraycollection內置類型轉換器-1User.java代碼內置類型轉換器-2RegUserAction.java代碼struts.xml片段代碼注意:屬性及方法名稱內置類型轉換器-3regUser.jsp代碼內置類型轉換器-4e.jsp代碼運行效果如下圖集合類型轉換Struts2對集合類型轉換提供了很好的支持可以使用集合對象來保存表單提交的數據對于表單提交多個相同類別的信息很有幫助支持如:List、Map、Set等對集合的支持在Action中,將相關屬性的泛型取消在對應的Action目錄下創建名為<Action類>-perties的文件在該文件下指定集合元素的數據類型如果集合是java.util.List,格式為:Element_xxx=復合類型其中Element是固定的,xxx表示Action中屬性的集合屬性名,復合類型是集合元素類型的完全限定名如果集合是java.util.Map,格式為:Key_xxx=復合類型其中Key是固定的,xxx表示Action中屬性的集合屬性名,復合類型是集合元素類型的完全限定名對List的支持-1Book.java代碼對List的支持-2BookListAction.java代碼struts.xml片段代碼對List的支持-3在BookListAction.java同目錄下添加BookListAperties添加Action中books集合屬性的集合元素的類型對List的支持-4orderList.jsp代碼對List的支持-5bookList.jsp代碼運行結果如下圖對Map的支持-1BookMapAction.java代碼對Map的支持-2struts.xml代碼在BookMapAction.java所在目錄下添加BookMapAperties文件對Map的支持-3orderMap.jsp代碼bookMap.jsp代碼對Map的支持-4運行效果如下圖orderMap.jsp頁面orderMap.jsp頁面對Set的支持Set集合并不維護元素加入的順序,也不能通過索引來訪問元素在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代碼運行結果如下圖自定義類型轉換器-1如果Struts2內置類型轉換器不能滿足應用需求,那么可以另外開發一個類型轉換器,從而自動實現類型轉換需要實現ognl.TypeConverter接口,實現其中的convertValue()方法通常,可以繼承OGNL中的工具類ognl.DefaultTypeConverter,它已實現ognl.TypeConverter接口,并提供了一個簡化的convertValue()方法,如下所示:convertValue(Mapcontext,Objectvalue,ClasstoType)方法context:表示OGNL上下文的Map對象value:表示需要轉換的對象toType:表示需要轉換的目標類型自定義類型轉換器-2DateConverter.java代碼自定義類型轉換器-3通常,還可以繼承Struts2中的抽象類org.apache.struts2.util.StrutsTypeConverter,方法如下publicabstractObjectconvertFromString(Mapcontext,String[]values,ClasstoClass)表示將一個或多個字符串值轉換為指定的類型context,表示action上下文的Map對象values,表示要轉換的字符串值toClass,表示要轉換的目標類型publicabstractStringconvertToString(Mapcontext,Objectobject)表示將指定的對象轉換為指定格式的字符串context,表示action上下文的Map對象object,表示要轉換的對象自定義類型轉換器-4BirthdayConverter.java代碼自定義類型轉換-1Student.java代碼自定義類型轉換-2StudentAction.java代碼struts.xml片段代碼自定義類型轉換-3studentRegister.jsp代碼studentInfo.jsp自定義類型轉換-4配置自定義轉換器應用于全局范圍的類型轉換器通常在WEB-INF/classes目錄下創建perties文件,并提供相應的屬性定義。其中,屬性是要轉換的類的名稱,屬性值是類型轉換器的名稱例如:java.util.Date=xx.xx.XxxConverter應用與特定類的轉換器配置針對某個特定類的類型轉換器,方法是在類所在的包中創建<ClassName>-c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 壓蓋機企業數字化轉型與智慧升級戰略研究報告
- 分析儀器及裝置零件、附件企業ESG實踐與創新戰略研究報告
- 纖維增強塑料風力發電機葉片企業ESG實踐與創新戰略研究報告
- 砷化鎵太陽能電池企業數字化轉型與智慧升級戰略研究報告
- 噴灌機械企業數字化轉型與智慧升級戰略研究報告
- 稀土銅合金企業數字化轉型與智慧升級戰略研究報告
- 塑料加工輔助機械或裝置企業數字化轉型與智慧升級戰略研究報告
- 加工承攬合同標準文本 工商
- 劇本轉讓合同樣本
- 勞務派遣人員培訓合同樣本
- 英語國家概況-Chapter10-government解析
- 【53天天天練】小學數學二年級下冊有余數的除法第四課時同步練習(含答案)
- (畢業設計方案)福田輕型貨車制動系統設計方案
- 砂石路維修工程施工方案
- 2023年電氣中級工程師考試題庫
- 健康教育心肺復蘇知識講座(3篇模板)
- 站臺保潔服務方案
- 2024-2030年中國高端半導體激光芯片行業市場全景調研及發展前景研判報告
- TD/T 1044-2014 生產項目土地復墾驗收規程(正式版)
- 裝修合同增項補充協議工程
- 腦膠質瘤診療指南2022年版
評論
0/150
提交評論