1. 程式人生 > >jQuery Ajax的Spring後臺接收陣列

jQuery Ajax的Spring後臺接收陣列

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;												
			}													
																
	}