java 開發中經常遇到 jsp 頁面傳多個id 到后台處理的情況。比如:批量刪除選擇內容等.......
我使用的解決的方法兩種:
jsp 傳多個id:使用easyui datagrid 選擇多行方式
var rows = $("#classids").datagrid('getSelections'); // 選擇多行 var class_id= []; for(var i=0; i<rows.length; i++){ class_id.push(rows[i].classid);// 傳id到數組 } // 使用 Ajax 傳到后台 $.ajax({ url : "${ctx}/class/selectClass?class_id="+class_id, type : 'post', success:function(data){ layer.closeAll(); if(data.flag==true||data.flag=='true'){ parent.layer.alert(data.msg,{icon: 1, title:'提示'}); selectAll(); }else{ parent.layer.alert(data.msg,{icon: 2, title:'提示'}); } } });
1:后台解決方法第一種
直接在后台Controller 中拆開ids:
String class_ids= request.getParameter("class_id");// 獲取選擇內容ids
String[] ids= class_ids.split(","); // 拆開 ids
for (int i = 0; i < ids.length; i++) {
map.put("ids", ids[i]); // 一個一個傳
sCloudApplyService.updateSchoolApplyStatus(map);// 我這里是修改狀態,也可以刪除操作等等。根據個人的業務邏輯修改。
}
2:后台解決方法第二種
把多個id不做處理,直接傳到數據庫操作 sql中。
@RequestMapping(value = "/batch_update_subjectiveuser_score",produces = "application/json;charset=UTF-8") @ResponseBody public String updateSchoolApplyStatus(@RequestParam(value = "class_id", required = true)List<String> classids // 一定不要忘了 這個參數:required = true。含義是:class_id不能為空,若是為空就會提示
,HttpServletRequest request, HttpServletResponse response){
Map<String, Object> map = new HashMap<>();
map.put("classids",classids);
sCloudApplyService.updateSchoolApplyStatus(map);// 我這里是修改狀態,也可以刪除操作等等。根據個人的業務邏輯修改。
}
mysql sql:修改班級類型
<update id="updateSchoolApplyStatus" parameterType="map">
update class
set
type=1
where
subject_answer_id in
<foreach collection="classids" item="ids" open="(" separator="," close=")">
${ids}
</foreach>
</update>
如果有比我這更容易的方法,歡迎在下面留言!!!!!謝謝