您的位置:首页 > 编程语言 > Java开发

spring mvc传数组参数

2016-04-20 00:00 363 查看
摘要: spring mvc 传参 数组

今天传数组参数,竟然不会用,记下来,加深印象。

1、页面ajax默认传参

function arrayParam(){
var contextPath = $('#contextPath').val();
var params = {};
params["names"] = ["张三", "李四", "王武"];
params["ages"] = [20, 26, 48];

var url = contextPath + "/array/getParamArray.do";
$.post(url, params, function(data){
alert(data);
});
}

controller层

@RequestMapping(value="/getParamArray")
public String getParamArray(@RequestParam("names[]") String[] names,
@RequestParam("ages[]") int[] ages){

LOG.info("getParamArray names={}, ages={}", Arrays.toString(names), Arrays.toString(ages));

return "viewName";
}

2、ajax传数组参数,默认在参数名后面加[],这一点和表单传参不一样,如果想和表单传参一样,可以如下

function arrayParam2(){
var url = contextPath + "/array/getParamArray.do";
var params = {};
params["names"] = ["张三", "李四", "王武"];
params["ages"] = [20, 26, 48];

$.ajax({
url: url,
type: 'post',
traditional: true, // 和表单传数组参数一样。
data:params,
success:function(data){
alert(data);
}
});
}

这时controller层的参数名字没有后面的[]括号了。

@RequestMapping(value="/getParamArray2")
public String getParamArray2(@RequestParam("names") String[] names,
@RequestParam("ages") int[] ages){

LOG.info("getParamArray names={}, ages={}", Arrays.toString(names), Arrays.toString(ages));

return "viewName";
}

3、表单传数组参数,参数名字可以很灵活,后面可加[],可不加,controller层的参数名字要对应起来

<form action="<%=contextPath %>/array/getParamArray2.do" method="post">
<table>
<tr>
<td>名字1</td><td><input name="names[]" value="张三" /></td>
</tr>
<tr>
<td>名字2</td><td><input name="names[]" value="李四" /></td>
</tr>
<tr>
<td>年龄1</td><td><input name="ages" value="30" /></td>
</tr>
<tr>
<td>年龄2</td><td><input name="ages" value="25" /></td>
</tr>
<tr>
<td><input type="reset" value="重置" /></td>
<td><input type="submit" value="提交" /></td>
</tr>
</table>
</form>

controller层的参数名字和form表单中的名字一致

@RequestMapping(value="/getParamArray3")
public String getParamArray3(@RequestParam("names[]") String[] names,
@RequestParam("ages") int[] ages){

LOG.info("getParamArray names={}, ages={}", Arrays.toString(names), Arrays.toString(ages));

return "viewName";
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: