1. 程式人生 > >struts2 中 關於物件陣列的傳值

struts2 中 關於物件陣列的傳值

        大家用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是不是有值了?

到此結束,如果不懂,請留言。