SpringMvc提供了對象參數綁定功能,例如Person對象有一個age字段,
則頁面表單使用
<input type='text' name='age' value='25'>
Controller中使用
public void getPerson(Person person){
// 此時person對象的age屬性值爲25
}
若是Controller中需要綁定兩類對象,且這兩類對象有屬性名相同,例如:
Teacher類有age屬性,Student類也有age屬性,此時頁面上再使用
<input type='text' name='age' value='25'>
Controller中接收如下:
public void getPerson(Teacher t,Student s){
// 此時報錯,因爲SpringMvc並不知道這個name屬於哪個對象
}
解決辦法
新建包裝類如下:
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'/>
// 由於頁面中使用了綁定參數的前綴,此時通過包裝類可以正常傳入參數
public void getPerson(TeaAndStu ts){
// ts.t.age = '20';
// ts.s.age = '10';
}
PS:若是各位有更好的解決辦法,希望留言告知。