@ModelAttribute表示的方法在Controller层中总是会在其他调用方法之前执行
。。。。后续不上
2019-2-15
1,可以解决数据进行更新的时候数据的的丢失
注:发生数据丢失的原因,在更改数据的时候可能只修改了,部分代码,其他代码没有修改,如果不进行其他操作,则会没有更改的数据则会变为空null,若加上了原来的数据则不会丢失。
代码如下:
@ModelAttribute("editPermission")
public Permission beforeEdit(Long id,String cmd){
//修改的时候才查询(只要有id会就进行一次查询,这是不对的)
if(id!=null && "update".equals(cmd)) {
Permission permission = permissionService.findOne(id);
//把要传过来的关联对象都清空,就可以解决n-to-n的问题
return permission;
}
return null;
}
@RequestMapping("/update")
@ResponseBody
public JsonResult update(@ModelAttribute("editPermission")Permission permission){
return saveOrUpdate(permission);
}
//添加或者修改
private JsonResult saveOrUpdate(Permission permission){
JsonResult jsonResult = new JsonResult();
try {
permissionService.save(permission);
} catch (Exception e) {
e.printStackTrace();
//代表出错
jsonResult.setSuccess(false);
jsonResult.setMsg(e.getMessage());
}
return jsonResult;
}