中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于Spring MVC同名參數綁定問題的解決方法

發布時間:2020-09-15 06:20:19 來源:腳本之家 閱讀:168 作者:MartinDai 欄目:編程語言

前言

最近在使用Spring MVC接收參數的時候,碰到個同名參數綁定的問題,參考了好幾篇文章才解決問題,所以自己在這里總結一下,分享出來供大家參考學習,話不多說了,來一起看看詳細的介紹:

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

<form action="/test.action" method="post"> 
 <input name="user.name"> 
 <input name="acc.name"> 
 <input type="submit"> 
</form> 

如果是sturts的話,這個很好解決,在Controller聲明user和acc對象就行了,但是SpringMVC的參數綁定和struts不一樣,它會自動的去找對應的屬性綁定,而如果你的action是這樣的:

@RequestMapping("/test.action")
public void test(Account account, User user){
 System.out.println(user);
 System.out.println(account);
} 

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

這里要用到@InitBinder這個注解,詳細的解釋可以找相關資料,這里只講怎么用。在Controller類添加下面兩個方法,作用是把指定的開頭標識符的值賦給成指定名字的對象

@InitBinder("account") 
public void initAccountBinder(WebDataBinder binder) { 
 binder.setFieldDefaultPrefix("acc."); 
} 

@InitBinder("user") 
public void initUserBinder(WebDataBinder binder) { 
 binder.setFieldDefaultPrefix("user."); 
}

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

@RequestMapping("/test.action")
public void test(@ModelAttribute("account") Account account, @ModelAttribute("user") User user){
 System.out.println(user);
 System.out.println(account);
}

注意: @ModelAttribute里面的參數要跟上面定義的@InitBinder里面的值對應,否則是取不到值的。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

收藏| 松阳县| 新丰县| 全椒县| 莱西市| 丹寨县| 雷山县| 柞水县| 汪清县| 黔东| 富宁县| 中山市| 芜湖市| 教育| 安庆市| 油尖旺区| 赤壁市| 宜兰县| 广元市| 凉山| 静乐县| 开原市| 南丰县| 河池市| 荔波县| 西青区| 阳城县| 抚远县| 田林县| 普陀区| 泰来县| 南昌县| 临桂县| 广元市| 赫章县| 招远市| 桐乡市| 青铜峡市| 顺义区| 务川| 大安市|