springmvc關於引數的處理問題

2021-09-01 07:56:56 字數 2864 閱讀 4099

1.2、@requestparam引數繫結

1.3、重定向與flash屬性

1.4、@modelattribute模型特性

二、action返回值型別

2.3、返回值為void

2.4、返回值為modelandview

2.5、返回值為map

2.6、返回值為任意型別

2.7、返回值為model型別

2.8、小結

這我們先去講解一下常見的註解

@pathvariable 註解引數訪問uri模板變數。

@requestparam 註解引數訪問特定的servlet請求引數,請求引數繫結。

@requestbody 註解引數訪問http請求主體,註解對映請求體

@requestpart 註解引數訪問「的multipart / form-data的」請求部分的內容。處理客戶端上傳檔案,多部分檔案上傳的支援

@sessionattribute 註解引數會話屬性

@requestattribute 註解引數訪問請求屬性

1.基本型別

方法的引數可以任意基本型別,如果引數名個http請求的引數名稱相同時進行自動對映。

自定義資料型別。

除了基本資料型別,也可以自定義的資料型別,如果乙個自定義的pojo物件,springmvc會通過反射吧請求的引數設定到物件中,轉換型別。

複雜資料型別

這裡的複雜資料 型別指的是乙個自定義型別中還包括另外乙個物件型別。

public class productmap 

public void setitems(mapitems)

}

//產品集合

public class productlist

public void setitems(listitems)

}

1.2@requestparam引數繫結

簡單的引數可以使用上一節中講過的自動引數對映,複雜一些的需要使用@requestparam完成。雖然自動引數對映很方便。

但有些細節是不能處理的,如引數是否必須引數。名稱沒有辦法指定。引數的預設值就沒有辦法做到了。如果使用了@requestparam可以實現 請求引數繫結。springmvc會自動查詢請求中的引數型別轉換並將於引數進行繫結。

@controller

public class foocontroller

}

在上一節中我們使用自動引數對映是不能直接完成list與陣列繫結的,結合@requestparam可以輕鬆實現

// list集合與陣列型別

public string action05(model model, @requestparam("u") listusers)

list與陣列直接繫結自定義資料型別與ajax.

上一小節中我們繫結的集合存放的只是基本資料型別。如果需要指定更加的複雜的資料型別則需要使用@requestbody與@responsebody註解了。

1.修改spring mvc配置檔案,請用mvc註解驅動功能。

2.pom.xml新增jackson依賴,新增依賴的配置內容如下:

com.fasterxml.jackson.core

jackson-core

2.5.2

com.fasterxml.jackson.core

jackson-databind

2.5.2

// list與陣列直接繫結自定義資料型別與ajax

//這裡我們跑題去講一下get和post請求的區別:

content-type請求是幹嗎的呢。http請求頭是由四種型別。分別是通用頭部,請求頭部,響應頭部以及內容頭部。首先,我們要弄清楚。content-type是幹嘛的呢?content-type是屬於內容頭部的。那麼這個請求是用來想接收端傳遞的改內容主題的。content-type的取值去告訴服務端。你傳遞過去的內容是啥。應該準備去如何接收她呢。

』multipart/form-data』。一般用來上傳檔案): 資料被編碼為一條訊息,頁上的每個控制項對應訊息中的乙個部分。

前面的大家基本了解後,我們開始正題了。

get 請求不存在請求實體部分,鍵值對引數放置在 url 尾部,瀏覽器把form資料轉換成乙個字串(name1=value1&name2=value2...),然後把這個字串追加到url後面,用?分割,載入這個新的url。因此請求頭不需要設定 content-type 字段。

非 ascii 碼會自動進行編碼轉換,例如傳送請求:www.bilibili.com?hehe=你的我的

值得一提的是,get 引數的編碼方式是無法人為干涉的,這導致了不同瀏覽器有不同的編碼方式,因此最穩妥的方案是人工預編碼,人工解碼,從而禁止瀏覽器編碼的干涉。

所以我們就可以回到上文了。

使用 string 作為請求處理方法的返回值型別是比較通用的方法,這樣返回的邏輯檢視名不會和請求 url 繫結,具有很高的靈活性,而模型資料又可以通過model控制。

使用void,map,model時,返回對應的邏輯檢視名稱真實url為:prefix字首+控制器路徑+方法名 +suffix字尾組成。(

void map model 都是使用預設檢視的名稱為方法名)

使用string,modelandview返回檢視名稱可以不受請求的url繫結,modelandview可以設定返回的檢視名稱。

另外在非mvc中使用的許多辦法在action也可以使用。

Spring MVC的引數封裝

關於list和陣列的引數封裝 如果提交的數格式是 ids 1 ids 2 ids jquery在提交的時候 ajax 或者data data list,datatype json type post traditional true success function responsejson 以上d...

springmvc的引數繫結

對於前端傳送的資料。我們如何接收呢?在傳統的servlet開發中使用httprequest.getp 方法來獲取,但是在springmvc中,我們將極大簡化這一任務,對於基本型別。我們只需要在請求處理方法中加入引數,與前端輸入的引數一致即可。public string zeze integer id...

SpringMVC的引數繫結

演示返回string,通過model modelmap返回資料模型 要點 表單提交的name屬性必需與pojo的屬性名稱一致。要點 通過點 傳遞屬性。基於批量刪除商品操作完成引數傳遞。jsp修改 控制器修改 包裝pojo傳遞演示 第二天,演示陣列引數的傳遞與list的傳遞 paramvo retur...