在JSP頁面開發中,我們常常會用到form表單做數據提交,由於以前一直只是使用 form表單提交單個對象,只要表單文本域的name值和接收的對象的屬性名一致,那么傳值就沒有什么問題。不過,在前幾天的開發任務中,遇到了需要批量 傳遞對象,也就是需要傳遞對象數組,在此做個總結。今天又遇到需要向后台傳遞數組,便一並寫下來吧。
1、ajax傳遞普通數組
前台代碼
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
var
deleteNum= [];
//定義要傳遞的數組
deleteNum.push(
"1"
);
deleteNum.push(
"2"
);
deleteNum.push(
"3"
);
//向數組中添加元素
$.ajax({
type:
"post"
,
url:
"deleteNum.do"
,
data:{deleteNum:deleteNum},
traditional:
true
,
//必須指定為true
success:
function
(data){
if
(data.success){
deleteNum = [];
}
}
});
|
后台代碼
|
1
2
3
4
5
|
public
ActionResult deleteNum(String[] deleteNum){
//這個時候已經得到了deleteNum數組值
return
Json(
new
{status=1});
}
|
form表單提交自定義對象數組
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<
form
id="form" name="form" method="post">
<
table
>
<
tr
>
<
td
><
input
type="text" name="user[0].name"/></
td
>
<
td
><
input
type="text" name="user[0].password"/></
td
>
</
tr
>
<
tr
>
<
td
><
input
type="text" name="user[1].name"/></
td
>
<
td
><
input
type="text" name="user[1].password"/></
td
>
</
tr
>
<
tr
>
<
td
><
input
type="text" name="user[2].name"/></
td
>
<
td
><
input
type="text" name="user[2].password"/></
td
>
</
tr
>
</
table
>
</
form
>
|
之后在form表單提交給后台時,需要先定義一個對象,當然,別忘了定義User對象,屬性為name,password,重點是下面這個用於接收form表單提交的對象數組,如果還有其他對象數組需要接收,那在這個類里面再定義相應的ArrayList屬性即可。
/** * 類型描述 * 表單列表對象 用於接收form表單提交的對象數組 * @since 2016-2-25 * @author 古時一輪月 * */ public class FormListObject { private ArrayList<User> userlist; public ArrayList<User> getUserlist() { return userlist; } public void setUserlist(ArrayList<User> userlist) { this.userlist= userlist; } }
定義好該對象之后,在controller層接收就可以了
|
1
2
3
|
public
AjaxResult saveOrUpdateUser(FormListObject list){
List<User> userlist = list.getUserlist();
//你會看到你想要的
}
|
轉自:http://blog.csdn.net/u014252157/article/details/50751302
