課堂錄屏相關(guān)04課程core_第1頁
課堂錄屏相關(guān)04課程core_第2頁
課堂錄屏相關(guān)04課程core_第3頁
課堂錄屏相關(guān)04課程core_第4頁
課堂錄屏相關(guān)04課程core_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1第四

章Struts2.0轉(zhuǎn)換器2023/3/2512目標(biāo)了解轉(zhuǎn)換器的主要特性理解轉(zhuǎn)換器的組成結(jié)構(gòu)掌握轉(zhuǎn)換器的使用2023/3/2523概述在已往的Struts1.x項(xiàng)目經(jīng)驗(yàn)中,有個(gè)問題不時(shí)的出現(xiàn)——在創(chuàng)建FormBean時(shí),對于某個(gè)屬性到底應(yīng)該用String還是其它類型?java.util.Date類型的屬性可以接收格式為2009-07-20的請求參數(shù)值,但如果我們需要接收格式為20091221的請求參數(shù)該怎么辦呢?2023/3/2534轉(zhuǎn)換器介紹開發(fā)Web應(yīng)用程序與開發(fā)傳統(tǒng)桌面應(yīng)用程序不同,Web應(yīng)用程序?qū)嶋H上是分布個(gè)不同的主機(jī)(當(dāng)然也可以同一個(gè)主機(jī),不過比較少見)上的兩個(gè)進(jìn)程之間互交。這種互交建立在HTTP之上,它們互相傳遞是都是字符串。換句話說,服務(wù)器可以接收到來自用戶的數(shù)據(jù)只能是字符串或字符數(shù)組,而在服務(wù)器上的對象中,這些數(shù)據(jù)往往有多種不同的類型,如日期(Date),整數(shù)(int),浮點(diǎn)數(shù)(float)或自定義類型(UDT),如圖4-1所示。因此,我們需要服務(wù)器端將字符串轉(zhuǎn)換為適合的類型。2023/3/25452023/3/255創(chuàng)建和配置默認(rèn)的資源文件實(shí)例介紹在src文件夾中加入globalMessages_en_US.properties文件,內(nèi)容如下:HelloWorld=HelloWorld!在src文件夾中加入globalMessages_zh_CN.properties文件,內(nèi)容如下:HelloWorld=你好,世界!6實(shí)例介紹2023/3/256創(chuàng)建HelloWorld.java文件classHelloWorld{ privateStringmsg; privateLocaleloc=Locale.US; publicStringgetMsg(){ returnmsg; } publicLocalegetLoc(){ returnloc; } publicvoidsetLoc(Localeloc){ this.loc=loc; }publicStringexecute(){ //LocalizedTextUtil是Struts2.0中國際化的工具類//<s:text>標(biāo)志就是通過調(diào)用它實(shí)現(xiàn)國際化的 msg=LocalizedTextUtil.findDefaultText("HelloWorld",loc); returnSUCCESS; }}7實(shí)例介紹2023/3/257在源代碼文件夾下的struts.xml注冊action<struts> <constantname="struts.custom.i18n.resources" value="globalMessages"/> <packagename="ConverterDemo"extends="struts-default"> <actionname="HelloWorld" class="com.xtgj.struts2.chapter04.action.HelloWorld"> <result>/HelloWorld.jsp</result> </action> </package></struts>8實(shí)例介紹2023/3/258新建HelloWorld.jsp<body> <s:formaction="HelloWorld"theme="simple"> Locale:<s:textfieldname="loc"/> <s:submit/> </s:form> <h2> <s:propertyvalue="msg"/> </h2></body>9實(shí)例介紹2023/3/259新建LocaleConverter.javapublicclassLocaleConverterextendsognl.DefaultTypeConverter{ @Override publicObjectconvertValue(Mapcontext,Objectvalue,ClasstoType){ if(toType==Locale.class){ Stringlocale=((String[])value)[0]; returnnewLocale(locale.substring(0,2),locale.substring(3)); }elseif(toType==String.class){ Localelocale=(Locale)value; returnlocale.toString(); } returnnull; }}10實(shí)例介紹2023/3/2510新建perties添加如下代碼:java.util.Locale=com.xtgj.struts2.chapter04.action.LocaleConverter發(fā)布運(yùn)行應(yīng)用程序,在瀏覽器中鍵入ConverterTest/HelloWorld.jsp11實(shí)例介紹2023/3/2511在文本框中錄入“en_US”輸出頁面:在Locale輸入框中輸入“zh_CN”,出現(xiàn)頁面:12已有的轉(zhuǎn)換器2023/3/2512預(yù)定義類型,例如int、boolean、double等;日期類型,使用當(dāng)前區(qū)域(Locale)的短格式轉(zhuǎn)換,即DateFormat.getInstance(DateFormat.SHORT);集合(Collection)類型,將request.getParameterValues(Stringarg)返回的字符串?dāng)?shù)據(jù)與java.util.Collection轉(zhuǎn)換;集合(Set)類型,與List的轉(zhuǎn)換相似,去掉相同的值;數(shù)組(Array)類型,將字符串?dāng)?shù)組的每一個(gè)元素轉(zhuǎn)換成特定的類型,并組成一個(gè)數(shù)組。

13批量封裝對象2023/3/2513添加商品頁面14轉(zhuǎn)換錯(cuò)誤處理2023/3/2514<%@pagecontentType="text/html;charset=UTF-8"%><%@taglibprefix="s"uri="/struts-tags"%><html> <head> <title>HelloWorld</title> </head> <body> <divstyle="color:red">

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論