1, 前端用户勾选的列表传到后端.
JS:
// 获取用户的所有勾选
var paramList = [];
$("input[name='checkbox']:checked).each(function(){
paramList.push($(this).val());
});
//异步请求
$.ajax({
url:'path/to/requst',
type:'POST',
.........
.........
data:{ usrOptions:paramList, id:$("#id").val()},
success: function(data){
......
......
});
SpringMVC Java :
@Controller
public class TestController {
...............
...............
@RequestMapping(value = "/saveUsrOptions", method = {RequestMethod.POST, RequestMethod.GET},produces = {"text/html;charset=UTF-8"})
@ResponseBody
public Result saveUsrOptions(HttpServletRequest req,
@RequestParam(required = false, value="usrOptions[]") List<Long> usrOptions){
...............
...............
}
}
@RequestParam 中两个设置的作用:
required = false; 当前端未传 usrOptions或者usrOptions为空数组的时候,如果没有把 required设为false会造成 服务器 直接报 400. 而且这个错误不会被程序代码捕获。
value = "usrOptions[]"; 这个是将前端传过来的参数名的值填充到目标Java变量中( usrOptions -> List<Long> usrOptions )。
参数名后的方括号 "[] "必须。