今日在学习中,研究了jsp批量删除,除了id数组去重之外,还有一个技术难点是var类型变量的传递。
例如我们需要批量删除商品
<a href="%{pageContext.request.contextPath}/goods/deleteByIds"+ids>批量删除</a>
我们可以给这个a标签设一个id
<a id="del" href="${pageContext.request.contextPath}/goods/deleteByIds">批量删除</a>
var del = document.getElementById("del");
var dhref = del.href;
那么我们得到了去重处理的id的集合,ids
var ids=[];
我们就可以做如下拼接
dhref= dhref+"?ids="+ids;
那么,我们此时点击这个“批量删除“的a标签的时候,a.href是未经处理的,所以我们需要一个onclick函数
例如<input type="button" οnclick=deleteByIds()>批量删除</input>
那么,在script部分,我们需要定义一个deleteByIds()函数
function deleteByIds(){
location.href="
${pageContext.request.contextPath}/goods/deleteByIds?ids="+ids;
}
实践发现不可实现,现补充案例如下
案例是给一个用户赋予多个权限,多个权限用其对应的主键 id 为参数,组成了 一个id数组,传给springMVC,然后springMVC传给mybatis,然后mybatis批量插入。其实类似的场景还有批量删除多个,也是类似的。
1. 前台页面
<thead><tr><th>权限选择</th><th>name</th><th>permission</th></tr></thead>
<c:forEach var="priv" items="${list }">
<tr class="odd gradeX">
<td><input type="checkbox" name="priv_id" value="${priv.id}" /></td>
<td><c:out value="${priv.name}"/></td>
<td><c:out value="${priv.permission}"/></td>
</tr>
</c:forEach>
2. jquery获得选中的项的id值:
//jquery获取复选框值
var priv_ids =[];//定义一个数组
$('input[name="priv_id"]:checked').each(function(){ // 遍历每一个name为priv_id的复选框,其中选中的执行函数
priv_ids.push($.trim($(this).val())); // 将选中的值添加到数组priv_ids中
});
console.log(priv_ids);
var indata = {userId:user_id, privIds:priv_ids};
$.post("/ems/priv/setPrivilege", indata, function(data){
if(data != null && data.result == 'ok'){
console.log(data.msg);
alert(data.msg);
}else{
1. 前台页面
<thead><tr><th>权限选择</th><th>name</th><th>permission</th></tr></thead>
<c:forEach var="priv" items="${list }">
<tr class="odd gradeX">
<td><input type="checkbox" name="priv_id" value="${priv.id}" /></td>
<td><c:out value="${priv.name}"/></td>
<td><c:out value="${priv.permission}"/></td>
</tr>
</c:forEach>
2. jquery获得选中的项的id值:
//jquery获取复选框值
var priv_ids =[];//定义一个数组
$('input[name="priv_id"]:checked').each(function(){ // 遍历每一个name为priv_id的复选框,其中选中的执行函数
priv_ids.push($.trim($(this).val())); // 将选中的值添加到数组priv_ids中
});
console.log(priv_ids);
var indata = {userId:user_id, privIds:priv_ids};
$.post("/ems/priv/setPrivilege", indata, function(data){
if(data != null && data.result == 'ok'){
console.log(data.msg);
alert(data.msg);
}else{