Spring MVC 繫結引數

2022-09-24 02:15:12 字數 1784 閱讀 4408

假設我們有乙個簡單的person類

public class person

public void setname(string name)

public integer getage()

public void setage(integer age)

}那麼如何通過請求過來的引數繫結到person物件上呢?

1、首先我們需要將物件暴露到對映方法的引數中

注:utils.parsejson(..)是我封裝了乙個轉化json的方法,只是為了檢視輸出

還有一點值得注意的是,這個person物件永遠都不為null,若無引數為person的屬性賦值,那麼person就相當於是乙個new person(),所有屬性都是預設值

2、再通過類似如下的請求http://localhost:8080/mobile/test1?name=zhu&age=10就可以將引數繫結到person物件了

throws ioexception 注:若引數中沒有ids,那麼此ids為null,否則預設根據","自動分隔成陣列

比如前台發出如下的請求:http://localhost:8080/mobile//test1?ids=a,b,c

這個繫結和80%的最初想法都不太一樣,需要通過乙個「輔助類」來實現繫結到list,直接在requestmapping方法引數中使用list無法繫結(就我所知道的)

下面我們來借助group這個類繫結一組person物件

public class group

public void setpersonlist(list personlist)

}此時需要發出的請求格式為http://localhost:8080/mobile/test1?personlist[0].name=zhu&personlist[1].name=zhao

也需要使用「輔助類」

public class group

public void setparammap(map parammap)

}此時需要發出的請求格式為http://localhost:8080/mobile/test1?parammap[age]=12¶mmap[name]=zhu

引數需要用parammap[age]這樣的格式,而parammap.age這樣的格式是無法繫結到map的

先解釋何謂「富物件」,也就是說物件的屬性中還有j**abean

public class group

public void setleader(person leader)

public list getmembers()

public void setmembers(list members)

}我們已經知道如何繫結到members了,那麼繫結到leader也很簡單

只需要:http://localhost:8080/mobile/test1?leader.name=zhu&leader.age=20

這裡只簡單的介紹了一些常見的繫結的用法,若想要真正掌握其中的原理還需要好好研究~比如beanwrapper和propertyeditor

自定義editor來擴充套件更多引數繫結方式等

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 雙精度...