在JSP頁面開發中,我們常常會用到form表單做數據提交,由於以前一直只是使用form表單提交單個對象,只要表單文本域的name值和接收的對象的屬性名一致,那么傳值就沒有什么問題。不過,在前幾天的開發任務中,遇到了需要批量傳遞對象,也就是需要傳遞對象數組,在此做個總結。今天又遇到需要向后台傳遞數組,便一並寫下來吧。
1、ajax傳遞普通數組
前台代碼
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 = []; } } });
后台代碼
public ActionResult deleteNum(String[] deleteNum){ //這個時候已經得到了deleteNum數組值 return Json(new {status=1}); }
form表單提交自定義對象數組
<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層接收就可以了
public AjaxResult saveOrUpdateUser(FormListObject list){ List<User> userlist = list.getUserlist(); //你會看到你想要的 }
轉自:http://blog.csdn.net/u014252157/article/details/50751302