資源描述:
《Struts2的類型轉(zhuǎn)換器.doc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、Struts2的類型轉(zhuǎn)換器類型轉(zhuǎn)換在實際開發(fā)中,類型轉(zhuǎn)換是必不可少的工作,在還沒有學(xué)習(xí)Struts2框架之前,我們在類型轉(zhuǎn)換的時候,通常每次都要編寫同樣的代碼,然而這樣的代碼又是必不可少的,有非常的乏味。出現(xiàn)了這些問題,那么Struts2就提供了非常強(qiáng)大的類型轉(zhuǎn)換功能,提供了多種內(nèi)置類型轉(zhuǎn)換器,可以自動對客戶端傳來的數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換,而這些過程對于開發(fā)者來說是透明的,如果在開發(fā)中,Struts2內(nèi)置的類型轉(zhuǎn)換器不能完成所需工作,那么Struts2還提供了自定義的類型轉(zhuǎn)換器,所以Struts2的類型轉(zhuǎn)換分為內(nèi)置
2、類型轉(zhuǎn)換和自定義類型轉(zhuǎn)換內(nèi)置類型轉(zhuǎn)換:客戶端錄入的所有數(shù)據(jù)都被視為字符串,Struts2常用的類型轉(zhuǎn)換為:1、String:將int、long、double、boolean、String類型的數(shù)組或java.util.Date類型轉(zhuǎn)換為字符串2、boolean/Boolean:在字符串和布爾值之間進(jìn)行轉(zhuǎn)換3、char/Character:在字符串和字符之間進(jìn)行轉(zhuǎn)換4、int/Integer、float/Float、long/Long、double/Double:在字符串和數(shù)值型數(shù)據(jù)之間進(jìn)行轉(zhuǎn)換5、Date:在
3、字符串和日期類型之間進(jìn)行轉(zhuǎn)換,具體輸入輸出格式與當(dāng)前的Local相關(guān),如果輸入的日期格式不符合要求,那么Struts2也無能為力了,只有進(jìn)行自定義類型轉(zhuǎn)換6、數(shù)組和集合:在字符串?dāng)?shù)組和數(shù)組對象、集合對象之間進(jìn)行轉(zhuǎn)換自定義類型轉(zhuǎn)換:通常使用自定義類型轉(zhuǎn)換的時候,都是在內(nèi)置類型轉(zhuǎn)換時轉(zhuǎn)換不了才會使用自定義類型轉(zhuǎn)換使用自定義類型轉(zhuǎn)換的步驟:1、創(chuàng)建自定義類型轉(zhuǎn)換器創(chuàng)建愛你自定義類型轉(zhuǎn)換器的時候有兩種方法,第一種是繼承DefaultTypeConverter類,第二種是繼承StrutsTypeConterver類2、
4、配置自定義類型轉(zhuǎn)換器配置自定義類型轉(zhuǎn)換器可以分為應(yīng)用與全局的類型轉(zhuǎn)換器和應(yīng)用與局部的類型轉(zhuǎn)換器全局類型轉(zhuǎn)換器的格式:文件名為xwork-conversion。properties的屬性文件,其內(nèi)容是:轉(zhuǎn)換類全名=類型轉(zhuǎn)換器全名局部類型轉(zhuǎn)換器格式:文件名為需要轉(zhuǎn)換的類名—conversion.properties的屬性文件,其內(nèi)容是:特定類的屬性名=類型轉(zhuǎn)換器類全名具體操作:創(chuàng)建DefaultConverter。java類繼承DefaultTypeConverter類importjava。text。DateFo
5、rmat;importjava。text。ParseException;importjava.text。SimpleDateFormat;importjava.util.Date;importjava.util.Map;importcom。opensymphony.xwork2。conversion。impl.DefaultTypeConverter;publicclassDefaultConverterextendsDefaultTypeConverter{//支持轉(zhuǎn)換多種日期格式privatefinalD
6、ateFormat[]dfs={newSimpleDateFormat("yyyy—MM—dd"),newSimpleDateFormat("yyyy年MM月dd”),newSimpleDateFormat(”yyyy/MM/dd"),newSimpleDateFormat("yyyyMMdd”),newSimpleDateFormat("yyyy.MM.dd"),newSimpleDateFormat("dd/MM/yyyy”)};@OverridepublicObjectconvertValue(Map〈
7、String,Object〉context,Objectvalue,ClasstoType){//獲取值String[]params=(String[])value;if(toType==Date.class){//將字符串轉(zhuǎn)換為Date格式for(inti=0;i〈dfs.length;i++){try{returndfs[i]。parse(params[0]);}catch(ParseExceptione){continue;}}}elseif(toType==String。class){//將日期轉(zhuǎn)換為
8、指定字符串Datedate=(Date)value;returnnewSimpleDateFormat("yyyy/MM/dd")。format(date);}returnnull;}}創(chuàng)建LoginConverter。java類繼承StrutsTypeConverter類importorg.apache.struts2。util。StrutsTypeConverter;publicclassLog