Struts2型別轉換

2021-07-11 02:46:15 字數 2131 閱讀 9093

實體類:

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型別的屬性,這個屬性需要進行型別轉換,...