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