實體類:
public class user
struts.xml配置
.....
struts型別轉換的api
struts2的型別轉換器實際上是基於ognl實現的,在ognl專案中有乙個ognl.typeconverter介面,這個介面就是實現型別轉換器必須實現的介面。該介面定義如下:
public inte***ce typeconverter
實現型別轉換器必須實現上面的typeconverter,不過上面的介面裡的方法過於複雜,所以ognl專案還提供了乙個該介面實現類:ognl.defaulttypeconverter,通過繼承該類實現自己型別轉換器.該類定義如下:
public class defaulttypeconverter extends object implements typeconverter
……//其他的方法
}convertvalue方法的作用
該方法完成型別轉換,不過這種型別轉換是雙向的,當需要把字串轉化物件例項時,通過該方法實現,當把物件例項轉換成字串時也通過該方法實現。這種轉換是通過totype引數型別是需要轉換的目標型別。所以可以根據totype引數來判斷轉換方向。
convertvalue方法引數和返回意義
第乙個引數:context是型別轉換環境的上下文
第二個引數:value是需要轉換的引數,根據轉換方向的不同value引數的值也是不一樣的。
第三個引數:totype是轉換後的目標型別
該方法的返回值是型別轉換後的值。該值的型別也會隨著轉換的方向的改變而改變。由此可見轉換的convertvalue方法接受需要轉換的值,需要轉換的目標型別為引數,然後返回轉換後的目標值
value為什麼是乙個字串陣列?
對於defaulttypeconverter轉換器而言,它必須考慮到最通用的情形,因此他把所有請求引數都視為字串陣列而不是字串。相當於getparametervalues()獲取的引數值
public object convertvalue(mapcontext, object value, class totype) else if (totype == string.class)
return null;
}
loginaction-conversion.properties檔案中指定轉換器
user=com.convert.userconvert
struts2自定義型別轉換
在struts2中提供了strutstypeconverter類來簡化自定義型別轉換的設計,這個類有兩個抽象方法需要實現:
(1) public object convertfromstring(map context, string values, class toclass) ;
用於string型別資料轉成自定義型別的處理方法
引數:context --- 與action有關的上下文資訊
values --- 從請求中獲取的引數值
toclass --- 要轉換的目標型別
(2) public string converttostring(map context, object obj) ;
用於自定義型別轉換成string
引數:context --- 與action有關的上下文資訊
obj --- 自定義型別物件
@override
public object convertfromstring(map arg0, string arg1, class arg2)
@override
public string converttostring(map arg0, object arg1)
loginaction-conversion.properties檔案中指定轉換器user=com.convert.userconvert2
struts2 型別轉換
繼承strutstypeconverter 類或者直接去實現 ognl.defaulttypeconverter 類 strutstypeconverter 類是對defaulttypeconverter 類的包裝。實現 convertfromstring 和converttostring 方法 然...
struts2型別轉換
一 內容提要 1.型別轉換概述 2.型別轉換出錯時如何進行處理 轉到哪個頁面 顯示什麼錯誤訊息 3.自定義型別轉換器 4.型別轉換與複雜物件配合使用 二 型別轉換概述 從乙個html表單到乙個action物件,型別轉換是從字串到非字串http沒有 型別 的概念,每一項表單輸入只可能是乙個字串或乙個字...
struts2(五)型別轉換
public class user public string getname pass的setter和getter方法 public void setpass string pass public string getpass action裡包含了乙個user型別的屬性,這個屬性需要進行型別轉換,...