开始思路是前台传一个id数组过去,后台根据Id,一个for循环逐个删除,后来请教学长前台的数组我们后台要怎么接收。原来后台也要用”,”分割接收数组。直接在control里面写for循环浪费内存,可以在sql语句里面直接条件就是一个foreach循环。
<input type='checkbox' name='isSelect'
value='<c:out value="${u.id}"/>'/>
<script type="text/JavaScript"> function delEdu() { var obj = document.getElementsByName('isSelect'); //console.info(obj) var ids = ''; for (var i = 0; i < obj.length; i++) { if (obj[i].checked) ids += obj[i].value + ','; //如果选中,将value添加到变量s中 //console.info(ids) } if (ids == '') { alert("Please choose one!"); } else { $.ajax({ type: 'POST', url: '${pageContext.request.contextPath}/users/deleteAlluser.do?ids=' + ids, contentType: "application/json; charset=utf-8", //data : {"name":name}, dataType: 'json', success: function (data) { alert("成功删除所选项!"); } }); } } </script>
@RequestMapping(value = "deleteAlluser.do", method = RequestMethod.POST) public String deleteAllUser(HttpServletRequest request, Model model, String ids) { List<String> list = Arrays.asList(ids.split(",")); userService.delectAllUser(list); /* String link2 = toListUser(model,request,null,null);*/ return "redirect:toListUser"; //return link2; }
<delete id="delectUserByIds" parameterType="int"> delete users from users where id IN <foreach collection="list" index="index" item="id" open="(" separator="," close=")"> #{id} </foreach> </delete>
输入参数是一个list类型
void delectUserByIds(List<String> list);
这个样就不用for循环逐个删除用户记录了。