关于vue+springboot批量删除遇到的问题,附上代码

js

// 批量删除
deleteBathById(){
debugger
let self=this
let ids= this.sels.map(item => item.id).join()//获取所有选中行的id组成的字符串,以逗号分隔
console.log(ids)
this.$confirm(‘此操作将永久删除该文件及其子文件, 是否继续?’, ‘提示’, {
confirmButtonText: ‘确定’,
cancelButtonText: ‘取消’,
type: ‘warning’
}).then(() => {
axios.post("/api/mmContractTemplate/deleteBathById",{ids:ids}).then(function(response){
self.loadingData();
alert(“删除成功”)
})
})
},
vue

 
{{message}} {{message1}} {{message2}} {{message3}}

后端
controller

@IgnoreAuth
    @RequestMapping(value = "/deleteBathById")
    public BaseResponse deleteBathById(@RequestBody HashMap parasmap ) {
        String ids = parasmap.get("ids");
        String[] id = ids.split(",");
        int result = mmContractTemplateManager.deleteBathById(id);
        if (result > 0) {
            return baseUtilService.setResultSuccess("删除成功");
        } else {
            return baseUtilService.setResultSuccess("删除失败");
        }
    }

service

/**
  * 根据id批量删除
  * @param
  * @return
  */
 int deleteBathById(String[] id);

impl

   @Override
    @Transactional
    public int deleteBathById(String[] id) {
        return this.baseMapper.deleteBathById(id);
    }

mapper

int deleteBathById( String[] id);

xml

 
    
        delete from mm_contract_template where mould_id in
        
            #{id}
        
    

遇到请求报错Required String parameter ‘id’ is not present问题,具体解决问题如下
关于vue+springboot批量删除遇到的问题,附上代码_第1张图片
之前用的是String接收
关于vue+springboot批量删除遇到的问题,附上代码_第2张图片
所以删除不了
如果前端传入的是json数据那么后端使用
@RequestBody HashMap map
进行接收,然后再通过map.get(“id”)获取对应的数据

如果前端传入的是正常表单数据,那么后端使用
@RequestParam(“id”) String id或者
@RequestParam(value=“id”, required = false) String id接收参数

需要注意的是,如果请求类型为delete并且参数类型不是json的话,不能使用通过表单类型提交,参数需要跟到请求url后面,并且后台使用@PathVariable进行获取参数

你可能感兴趣的:(问题类)