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( )只能获得一个。