前端请求参数-json格式
//编辑后提交后台处理
handleEdit() {
let param = {
checkitemIds: this.editCheckitemIds, //[]编辑后的复选框数据,用于数据提交
editFormData: this.editFormData //{} 编辑后的表单数据,数据提交
}
axios.post("/checkgroup/edit.do", param)
.then(resp => {
let data = resp.data;
if (data.flag) {
this.$message.success(data.message);
} else {
this.$message.error(data.message);
}
}).finally(()=>{
this.dialogFormVisible4Edit = false;
this.findPage();
})
},
后端控制器接收-HashMap
@RestController
@RequestMapping("/checkgroup")
public class CheckGroupController {
/**
* 修改检查组
* @param param Map<String, Object>
* @return Result
*/
@RequestMapping(value = "/edit")
Result edit(@RequestBody Map<String, Object> param) {
checkGroupService.edit(param);
return new Result(true, MessageConstant.EDIT_CHECKGROUP_SUCCESS);
}
}
逻辑处理:错误代码-直接强转
@Service(interfaceClass = CheckGroupService.class)
@Transactional(rollbackFor = Exception.class)
public class CheckGroupServiceImpl implements CheckGroupService {
@Autowired
private CheckGroupDao checkGroupDao;
/**
* 编辑检查组
*
* @param param 参数
*/
@Override
public void edit(Map<String, Object> param) {
Integer checkitemIds1 = (Integer) param.get("checkitemIds");
CheckGroup checkgroup = (CheckGroup) param.get("editFormData");
checkGroupDao.updateById(checkGroup);
// 修改中间关系表: 1、先删除数据 2、添加数据
checkGroupDao.deleteAssoication(checkGroup.getId());
for (Integer checkitemId : checkitemIdList) {
checkGroupDao.addAssoication(checkGroup.getId(), checkitemId);
}
}
}
错误分析:数据类型为JSON,需要反序列化
@Override
public void edit(Map<String, Object> param) {
//JSONarray 反序列化
String checkitemIds = JSON.toJSONString(param.get("checkitemIds"));//转成json字符串
List<Integer> checkitemIdList = JSON.parseArray(checkitemIds, Integer.class);
//JSONobject 反序列化成JAVA对象
String editFormDataStr = JSON.toJSONString(param.get("editFormData"));
CheckGroup checkGroup = JSON.parseObject(editFormDataStr, CheckGroup.class);
checkGroupDao.updateById(checkGroup);
// 修改中间关系表: 1、先删除数据 2、添加数据
checkGroupDao.deleteAssoication(checkGroup.getId());
for (Integer checkitemId : checkitemIdList) {
checkGroupDao.addAssoication(checkGroup.getId(), checkitemId);
}
}
阿里高性能Json框架之FastJson教程:
https://www.bilibili.com/video/BV1Hy4y1x7ri?p=9&share_source=copy_web