處理器介面卡在執行handler之前需要把http請求的key/value資料繫結到handler方法形引數上。
springmvc中,接收頁面提交的資料是通過方法形參來接收,而不是在controller類定義成員變數接收!
預設支援的型別
處理器形參中新增如下型別的引數處理介面卡會預設識別並進行賦值。
1、httpservletrequest:通過request物件獲取請求資訊
2、httpservletresponse:通過response處理響應資訊
3、httpsession:通過session物件得到session中存放的物件
4、model/modelmap:modelmap是model介面的實現類,通過model或modelmap向頁面傳遞資料,將model資料填充到request域。如下:
//呼叫service查詢商品資訊
items item = itemservice.finditembyid(id);
model.addattribute("item", item);
頁面通過$獲取item物件的屬性值。
使用model和modelmap的效果一樣,如果直接使用model,springmvc會例項化modelmap。
簡單資料型別:整型、字串、單精度/雙精度、布林型
通過@requestparam對簡單型別的引數進行繫結:
如果不使用@requestparam,要求request傳入引數名稱和controller方法的形參名稱一致,方可繫結成功。
如果使用@requestparam,不用限制request傳入引數名稱和controller方法的形參名稱一致。
value:引數名字,即入參的請求引數名字,如value=「item_id」表示請求的引數區中的名字為item_id的引數的值將傳入;
required:是否必須,預設是true,表示請求中一定要有相應的引數,沒有傳入引數,報下邊錯誤:
可以使用defaultvalue設定預設值,即使required=true也可以不傳引數值。
pojo
1、簡單pojo
將pojo物件中的屬性名與傳遞進來的屬性名對應,如果傳進來的引數名稱和物件中的屬性名稱一致則將引數值設定在pojo物件中:
頁面定義如下:
contrller方法定義如下:
public string edititemsubmit(items items)throws exception
頁面定義:
注意:items和包裝pojo中的屬性一致即可。
controller方法定義如下:
public string useraddsubmit(model model,queryvo queryvo)throws exception catch (parseexception e)
//如果引數繫結失敗返回null
return null;
}}
集合類
1、字串陣列
頁面選中多個checkbox向controller方法傳遞:
傳遞到controller方法中的格式是:001,002,003
controller方法中可以用string接收,定義如下:
public string deleteitem(string item_id)throws exception
頁面定義如下:
上邊的靜態**改為動態jsp**如下:
.....
contrller方法定義如下:
public string useraddsubmit(model model,queryvo queryvo)throws exception
3、map
在包裝類中定義map物件,並新增get/set方法,action使用包裝物件接收。
public class queryvo
頁面定義如下:
學生資訊:
姓名:**:...
contrller方法定義如下:
public string useraddsubmit(model model,queryvo queryvo)throws exception
spring MVC 引數繫結
spring mvc的引數可以繫結簡單型別 pojo型別和自定義型別。1 controller預設支援的引數型別 這些物件只要在controller形參中定義就可以使用。2 簡單引數型別 此種方法需要遵循的的原則是定義的形參要與請求中的引數名一致 如果想要讓形參的名與請求中攜帶的引數名不一致,就需要...
spring mvc引數繫結
controller public class hellocontroller 當請求的引數名稱和處理器形參名稱一致時會將請求引數與形參進行繫結。spring會自動將表單引數注入到方法引數,不需要做任何處理。從request獲取引數的方法可以進一步簡化 public modelandview dem...
SpringMvc 引數繫結
使用這種方式獲取引數,和我們使用servlet獲取引數就一樣了 當前請求的引數名稱和處理器 控制器 形式 名字一致時,會將請求的引數與形參進行繫結 引數型別 推薦使用包裝型別 因為基礎的資料型別它不支援null 整型 integer int 字串 string 單精度 float float 雙精度...