前言
本文主要給大家介紹了關于解決Spring Mvc對象綁定參數重名問題的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹:
發現問題
SpringMvc提供了對象參數綁定功能,例如Person對象有一個age字段,
則頁面表單使用
1
|
< input type = 'text' name = 'age' value = '25' > |
Controller中使用
1
2
3
4
|
public void getPerson(Person person){ // 此時person對象的age屬性值為25 } |
若是Controller中需要綁定兩類對象,且這兩類對象有屬性名相同,例如:
Teacher類有age屬性,Student類也有age屬性,此時頁面上再使用
1
|
< input type = 'text' name = 'age' value = '25' > |
Controller中接收如下:
1
2
3
4
|
public void getPerson(Teacher t,Student s){ // 此時報錯,因為SpringMvc并不知道這個name屬于哪個對象 } |
解決辦法
新建包裝類如下:
1
2
3
4
5
6
7
|
public class TeaAndStu{ private Teacher t; private Student s; // 省略構造函數和getter setter } |
此時寫法如下:
老師年齡: <input type='text' name='t.age' value='20'/>
學生年齡: <input type='text' name='s.age' value='10'/>
1
2
3
4
5
6
|
// 由于頁面中使用了綁定參數的前綴,此時通過包裝類可以正常傳入參數 public void getPerson(TeaAndStu ts){ // ts.t.age = '20'; // ts.s.age = '10'; } |
總結
以上就是這篇文章的全部內容了,若是各位有更好的解決辦法,希望留言告知,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。
原文鏈接:http://blog.csdn.net/qq12547345/article/details/55046490