Struts2 的型別轉換

2021-06-20 20:35:03 字數 2454 閱讀 5350

1 總體概述:將

string

型別轉化為自定義型別,是瀏覽器傳遞的引數轉換成相應的物件型別,從伺服器跳轉到瀏覽器頁面是自定義型別(物件型別)到

string

型別的轉換。

2 流程:當瀏覽器提交到乙個

action

時候,會找到相應的

action

類,當呼叫

action

類裡面set

。。方法的時候

struts2

會自動檢測有沒有自定義類轉換(也就是去找有沒有

xxaction-conversion.properties

檔案或者

xwork-conversion.properties

檔案),如果有,則根據

.properties

檔案中的配置找到相應的轉換類進行相應的轉換。

xxaction-conversion.properties

檔案是區域性的型別轉換,

xwork-conversion.properties

檔案是一種全域性的轉換

3 自定義型別轉換類的書寫有兩種方法:

(一)繼承defaulttypeconverter

類,重寫convertvalue(map context, object value, class totype)方法,其中有三個引數,第乙個不考慮一般,第二個引數value

是乙個陣列,一定要將其轉換為陣列型別,第三個引數代表要轉換成的型別,是乙個物件型別還是乙個

string

型別。

@override

public object convertvalue(map context, object value, class totype) {

if(point.class==totype){//轉換成自定義型別,

point point=new point();

string  str=(string) value;

string  paramvalues=str[0].split(",");

int x=integer.parseint(paramvalues[0]);

int y=integer.parseint(paramvalues[1]);

point.setx(x);

point.sety(y);

return point;

if(string.class==totype){//如果目標型別是乙個string型別,代表伺服器向瀏覽器輸出

point point=(point) value;

int x=point.getx();

int y=point.gety();

string result="[x="+x+" , y="+y+"]";

return result;

return

null;

(二)繼承strutstypeconverter類

重寫convertfromstring(map context, string values, class totype)方法和public string converttostring(map map, object o)方法,裡面的引數用法和方法一一樣了,因為strutstypeconverter這個類是乙個抽象類,繼承了defaulttypeconverter

public

class pointconverter3 extends strutstypeconverter{

@override

public object convertfromstring(map context, string values, class totype) {

listlist=new arraylist();

for(string value:values){

point point=new point();

string  paramvalues=value.split(",");

int x=integer.parseint(paramvalues[0]);

int y=integer.parseint(paramvalues[1]);

point.setx(x);

point.sety(y);

list.add(point);

return list;

@override

public string converttostring(map map, object o) {

listlist=(list) o;

stringbuilder sb=new stringbuilder();

for(point point:list){

int x=point.getx();

int y=point.gety();

system.out.println(x);

return sb.tostring();

struts2的型別轉換

由於使用者在客戶端輸入的資料都為字串型別,當將其儲存到伺服器端時無疑要進行型別轉換,這樣型別轉換自然應運而生了 與型別轉換相關聯的還有輸入校驗,只是輸入校驗習慣性建立在型別轉換基礎之上,輸入校驗將在後面介紹 可以說型別轉換和輸入校驗主要是對使用者輸入的資料進行基本的處理和驗證,以增強系統的安全和穩定...

Struts2的型別轉換

一,區域性型別轉換 對某個action中的字段進行型別轉換 1,寫乙個針對該action的要轉換的字段的轉換器,繼承defaulttypeconverter,重寫convertvalue方法 2,在該action同乙個目錄下 同一包下 新建乙個 conversion.properties檔案。是該a...

關於struts2的型別轉換

struts2會不會把form表單自動轉換成pojo的int,date型別呢?我在jsp這樣寫 user最開始我寫了乙個setage int age 的方法,action中的提供乙個private user user new user 執行程式時候一直報找不到方法setage,引數型別是字串陣列!我...