ssj框架集成:解决数据丢失的方案三种方案
1.隐藏域 (前端页面写):麻烦,要写很多代码
2.SQL中不修改 (domain中通过注解将sql写死):不利于后面扩展
3.修改时先去数据库中查询:
注释:@ModelAttribute : 在访问任意路劲这个方法的时候会先执行它
解决n-to-n的问题
添加:/employee/save 修改:/employee/update?cmd=update
//保存方法 @RequestMapping("/save") @ResponseBody public Boolean save(Employee employee){ if(employee.getDepartmentId().getId()==null||"".equals(employee.getDepartmentId().getId())){ employee.getDepartmentId().setId(4L); } try { iEmployeeService.save(employee); } catch (Exception e) { e.printStackTrace(); return false; } return true; } //修改方法 @RequestMapping("/update") @ResponseBody public Boolean update(@ModelAttribute("copyEmployee") Employee employee){ try { iEmployeeService.save(employee); } catch (Exception e) { e.printStackTrace(); return false; } return true; } //解决数据丢失问题 @ModelAttribute("copyEmployee") public Employee copyEmployee(Long id,String param){ //设定只有修改的时候才执行 if(id!=null&&"update".equals(param)){ Employee employee = iEmployeeService.findOne(id); /* 解决n-to-n问题:让department为空, 不然会因为前台传来departmentId.id这个参数 而导致departmentId.id分割成而导致departmentId和id,生成持久化参数 */ employee.setDepartmentId(null); return employee; } return null; }