SpringMvc對象綁定參數重名解決

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:若是各位有更好的解決辦法,希望留言告知。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章