文章目录
需求分析
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iLdyDps3-1653931513745)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220530235015222.png)]](https://i-blog.csdnimg.cn/blog_migrate/35ff9bea7074d6ab5b82b1f0ca1729b4.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L2g5VwQ0-1653931513746)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220530235055586.png)]](https://i-blog.csdnimg.cn/blog_migrate/1a0c60ebc29c0fd87b1ca7c3970a988e.png)
代码开发
前端页面实现
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vjUtooKi-1653931513747)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220530235150753.png)]](https://i-blog.csdnimg.cn/blog_migrate/369140b7edacedc179688a6fd39e5c07.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S3dxoohc-1653931513748)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220530235816494.png)]](https://i-blog.csdnimg.cn/blog_migrate/67298df391b632863e70fc40361ac856.png)
管理员登录
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cOTUQDkb-1653931513748)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220530235530398.png)]](https://i-blog.csdnimg.cn/blog_migrate/3e3a7d5a950a6b5668553f07bfe331f8.png)
一般用户登录
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TWZsLcJy-1653931513749)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220530235455833.png)]](https://i-blog.csdnimg.cn/blog_migrate/d1495aecf5eaccf7ffa99611d6b7d1db.png)
梳理过程
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vQj5SuNT-1653931513750)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220530235927671.png)]](https://i-blog.csdnimg.cn/blog_migrate/ef94f98a9268638c85a3b076cfdf476c.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cRnGzzhe-1653931513751)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220531000356282.png)]](https://i-blog.csdnimg.cn/blog_migrate/ea55288e134cb82c02bfef52bdcdf4ce.png)
“禁用” - “启用” - 实际上就是一个更新操作,当前“编辑”功能也是一个更新操作
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J4oqmS52-1653931513752)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220531000624981.png)]](https://i-blog.csdnimg.cn/blog_migrate/cae0fdfff4ae0dffee51955991a2c928.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q6wXkzeG-1653931513752)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220531000502047.png)]](https://i-blog.csdnimg.cn/blog_migrate/35c4baf4488b6c09bb4dc99c0d2375c0.png)
EmployeeController.java添加方法
/**
* 根据id来修改信息
* @param employee
* @return
*/
@PutMapping
public R<String> update(@RequestBody Employee employee){ //RequestBody封装成json数据
log.info(employee.toString());
return null;
}
debug测试
得到id和status,测试正常
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eDz4Vpud-1653931513752)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220531001235505.png)]](https://i-blog.csdnimg.cn/blog_migrate/46d755788e18e2380a18f65d69d57f1c.png)
完善update方法
/**
* 根据id来修改信息
* @param employee
* @return
*/
@PutMapping
public R<String> update(HttpServletRequest request,@RequestBody Employee employee){ //RequestBody封装成json数据
log.info("update方法" + employee.toString());
Long empId = (Long) request.getSession().getAttribute("employee");
employee.setUpdateTime(LocalDateTime.now());
employee.setUpdateUser(empId);
employeeService.updateById(employee);
return R.success("员工信息修改完成");
}
测试问题
id不匹配,不能更新
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qmQcS0a5-1653931513753)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220531005751212.png)]](https://i-blog.csdnimg.cn/blog_migrate/3b802550fd042905319231da3edd58e4.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MgyBXBJa-1653931513753)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220531005646316.png)]](https://i-blog.csdnimg.cn/blog_migrate/756abb47a4bda7157b82cb385f8bdc38.png)
问题原因
JavaScript接收到数据后只能精确到前16位数字,后面三位数字四舍五入
验证问题
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5UjQ9I4f-1653931513754)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220531010139530.png)]](https://i-blog.csdnimg.cn/blog_migrate/c84257b4bedfedfac6a73dffdc6b5c1d.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-msEziJag-1653931513754)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220531010205738.png)]](https://i-blog.csdnimg.cn/blog_migrate/1ade6c4b41c96f92b0f9f4b04dab71fd.png)
解决方案
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yDZWYakP-1653931513754)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220531005958423.png)]](https://i-blog.csdnimg.cn/blog_migrate/c9dded8dc9b7312f737094c696926a38.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ugJP8P63-1653931513755)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220531010250271.png)]](https://i-blog.csdnimg.cn/blog_migrate/e2cbb416a59e630a6426ada29629f5b0.png)
代码修复
复制黏贴JacksonObjectMapper.java
package com.taotao.reggie.common;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
import java.math.BigInteger;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;
/**
* 对象映射器:基于jackson将Java对象转为json,或者将json转为Java对象
* 将JSON解析为Java对象的过程称为 [从JSON反序列化Java对象]
* 从Java对象生成JSON的过程称为 [序列化Java对象到JSON]
*/
public class JacksonObjectMapper extends ObjectMapper {
public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss";
public JacksonObjectMapper() {
super();
//收到未知属性时不报异常
this.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);
//反序列化时,属性不存在的兼容处理
this.getDeserializationConfig().withoutFeatures(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
SimpleModule simpleModule = new SimpleModule()
.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))
.addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)))
.addSerializer(BigInteger.class, ToStringSerializer.instance)
.addSerializer(Long.class, ToStringSerializer.instance)
.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))
.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)));
//注册功能模块 例如,可以添加自定义序列化器和反序列化器
this.registerModule(simpleModule);
}
}
WebMvcConfig.java添加方法
/**
* 扩展mvc框架的消息转换器
* @param converters
*/
@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);
}
启动测试
mvc框架的默认8个启动转换器
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xNm7kraK-1653931513755)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220531011949429.png)]](https://i-blog.csdnimg.cn/blog_migrate/f19c889e8f5bae0d30afb9966372bd02.png)
默认转换器
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XKflAfdJ-1653931513755)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220531012108486.png)]](https://i-blog.csdnimg.cn/blog_migrate/b0fbdbfe48a8381b1fb378f347d668e5.png)
功能实现
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LXxAXxuf-1653931513756)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220531012357308.png)]](https://i-blog.csdnimg.cn/blog_migrate/d925282e9ea4229b6165fc1f865f29aa.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WrqqKhWh-1653931513756)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220531012453871.png)]](https://i-blog.csdnimg.cn/blog_migrate/db44f7b82bb1ef3282f5aff798612f04.png)

本文探讨了在前端开发中遇到的日期更新问题,由于JavaScript精度限制导致id匹配失败。通过修复JacksonObjectMapper并调整WebMvcConfig,解决了日期格式转换问题,确保员工信息更新的准确性和一致性。
696

被折叠的 条评论
为什么被折叠?



