SpringMVC同名引數繫結問題

2021-08-18 05:18:07 字數 1019 閱讀 1564

今天在使用springmvc接收引數的時候,碰到個同名引數繫結的問題,參考了好幾篇文章才解決問題,所以自己在這裡總結一下。

比如,我的表單是這樣的:

action="/test.action"

method="post">

name="user.name">

name="acc.name">

type="submit">

form>

如果是sturts的話,這個很好解決,在controller宣告user和acc物件就行了,但是springmvc的引數繫結和struts不一樣,它會自動的去找對應的屬性繫結,而如果你的action是這樣的:

public

void

test

(account account, user user)

這樣的話是會報錯的,怎麼辦呢?

這裡要用到@initbinder這個註解,詳細的解釋可以找相關資料,這裡只講怎麼用。在controller類新增下面兩個方法,作用是把指定的開頭識別符號的值賦給成指定名字的物件

@initbinder("account")  

public

void

initaccountbinder

(webdatabinder binder)

@initbinder("user")

public

void

inituserbinder

(webdatabinder binder)

然後把action方法改造成下面這樣就可以了。

public

void

test

(@modelattribute("account") account account, @modelattribute

("user") user user)

注意@modelattribute裡面的引數要跟上面定義的@initbinder裡面的值對應,否則是取不到值的。

SpringMVC同名引數繫結問題

今天在使用springmvc接收引數的時候,碰到個同名引數繫結的問題,參考了好幾篇文章才解決問題,所以自己在這裡總結一下。比如,我的表單是這樣的 如果是sturts的話,這個很好解決,在controller宣告user和acc物件就行了,但是springmvc的引數繫結和struts不一樣,它會自動...

spring MVC 引數繫結

spring mvc的引數可以繫結簡單型別 pojo型別和自定義型別。1 controller預設支援的引數型別 這些物件只要在controller形參中定義就可以使用。2 簡單引數型別 此種方法需要遵循的的原則是定義的形參要與請求中的引數名一致 如果想要讓形參的名與請求中攜帶的引數名不一致,就需要...

spring mvc引數繫結

controller public class hellocontroller 當請求的引數名稱和處理器形參名稱一致時會將請求引數與形參進行繫結。spring會自動將表單引數注入到方法引數,不需要做任何處理。從request獲取引數的方法可以進一步簡化 public modelandview dem...