前言
1、通过前端页面查看接口
会发现请求方式是put 请求接口是employee
2、检查页面传值
根据浏览器的请求可以看到传值为id和status
2、写put请求,添加修改时间和修改人的id然后传回给后台
/**
* 启用和禁用员工账号
* @param request
* @param employee
* @return
*/
@PutMapping
public R<String> update(HttpServletRequest request, @RequestBody Employee employee){
Long empId = (Long) request.getSession().getAttribute("employee");
employee.setUpdateTime(LocalDateTime.now());
employee.setUpdateUser(empId);
employeeService.updateById(employee);
return R.success("修改成功");
}
3、未修改成功的原因
数据中的id和前端传输的id不一致导致的,这是由于前端的number类型过长导致精度丢失导致的
4、解决方案
通过查询时候将id该为字符串类型可以解决这个问题
4.1、扩充默认的消息转换器
@Override
protected void extendMessageConverters(List<HttpMessageConverter<?>> converters){
log.info("扩展消息转换器...");
// 创建消息转换器对象
MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
// 设置对象转换器,底层使用jackson将java对象转换成json
messageConverter.setObjectMapper(new JacksonObjectMapper());
// 将上面的消息转换器对象追加到mvc框架的转换器集合中
converters.add(0,messageConverter);
}
4.2、扩充的消息转换器文件
百度云盘
链接:https://pan.baidu.com/s/1xHksgy_u11cbBU8xfZbwLA?pwd=bi9c
提取码:bi9c