jQuery Ajax的Spring後臺接收陣列
阿新 • • 發佈:2019-02-02
js程式碼
function bu() { var ids = new Array(); ids.push("aa"); ids.push("bb"); ids.push("cc"); ids.push("dd"); $.ajax({ type: 'POST', url:'XXXXXXX.jhtml', traditional: true, data:{"xclx" : ["123","234"]}, error: function(request) { alert('Connection error'); }, success: function(data) { alert(123); } }); }
jQuery Ajax的traditional引數的作用
(防止深度序列化) | ||||||||||||||||||||||||||||||||||
預設的話,traditional為false,即jquery會深度序列化引數物件,以適應如PHP和Ruby on Rails框架, | ||||||||||||||||||||||||||||||||||
但servelt api無法處理,我們可以通過設定traditional 為true阻止深度序列化,然後序列化結果如下: | ||||||||||||||||||||||||||||||||||
p: ["123", "456", "789"] => p=123&p=456&p=456 |
SpringJava接收程式碼
/** * 專案資訊登入完成處理 * value="xclx" 繫結request的單個引數 * @ModelAttribute()ProjectInfoBean String[] xclx 只能是陣列 * 繫結到一個bean上 * @return */ @RequestMapping(value = "/PRS0301D09.jhtml", method = RequestMethod.POST) public String rrrr(@RequestParam(value="xclx")String[] xclx,@ModelAttribute()ProjectInfoBean projectInfo, HttpServletRequest request, HttpServletResponse response, ModelMap model) { return ""; }
Bean結構
bean結構 public class ProjectInfoBean { private String[] xclx; public String[] getXclx() { return xclx; } public void setXclx(String[] xclx) { this.xclx = xclx; } }