struts2 中 關於物件陣列的傳值
阿新 • • 發佈:2019-02-17
大家用struts2時想必會經常遇到在JS或者JSP中往後臺傳遞物件陣列的問題,你是不是在一直為後臺取值是null的問題而苦惱呢?下邊我來告訴大家究竟如何做才能取到值。
一、在Action中宣告陣列物件(這裡也可以是List等集合),程式碼如下:
public List<User> users = new ArrayList<User>();
這裡有兩點需要注意:
1、宣告可以是public也可以是private,private 要求必須生成get、set方法,推薦使用第二種方式,原理不再詳細說明,有問題可以留言。
2、物件陣列(或者集合)必須進行初始化,否則寫的再好後臺獲取的值仍為null。 這種情況很多人都容易忽略。(簡單提醒下:平時用單個物件時可以從前臺到後臺傳遞該物件,但把該物件換成陣列物件就不行了,原因在於單個物件有該物件的構造方法可以產生該物件的例項,而陣列沒有,所以需要陣列物件直接new 一個例項出來)。
二、在頁面中或者JS中用get或者post方式進行傳值吧,程式碼如:
<input name="users[0].id" value="1"> <input name="users[0].name" value="張三"> <input name="users[1].id" value="2"> <input name="users[1].name" value="李四">
在Debug模式下加斷掉,看看users是不是有值了?
到此結束,如果不懂,請留言。