ajax部分代码:获取name为categories的checkbox的内容
var categories=new Array();
//遍历多选框
$("input[name='categories']").each(function(i,item){
if(item.checked){
categories.push($(this).val());
}
});
$.ajax({
url:"doSearch.do",
type:"post",
data:{"searchContent":$content,"categories":categories},......
java部分代码:
String[] arr=request.getParameterValues("categories[]");
if(arr!=null) {
for(String s:arr) {
System.out.println(s);
}
}
System.out.println("-------");
String[] arr1=(String[]) request.getParameterMap().get("categories[]");
if(arr1!=null) {
for(String s:arr1) {
System.out.println(s);
}
}
Object arr2=request.getParameter("categories[]");
System.out.println("arr2:"+arr2);
System.out.println(request.getParameterMap());
输出结果为:
病程记录
麻醉记录
其他纪录
-------
病程记录
麻醉记录
其他纪录
arr2:病程记录
{searchContent=[Ljava.lang.String;@4990b53a, categories[]=[Ljava.lang.String;@4daf38d0}
一开始的时候,获取数组时候没有加上“[ ]”一直输出为null,在看到reques.getParamerMap( )的结果后,发现它会自动加上“[ ]”,所以修改代码,将categories后面加上“[ ]”,遍历获得的数组,可以看到request.getParamerValues( )和request.getParamerMap( )做一些处理可以得到预期效果,但是request.getParamer( )只能获得一个。