解决页面js接受Long型损失精度问题

article/2025/9/11 16:02:35

目录

一、场景描述

二、问题分析

三、解决方法


一、场景描述

在下面这个后台管理中,当我们点击禁用后,会向服务器发送一个请求,同时携带这个员工的19位数字的id。

 请求方式为PUT

 

 

 这里的禁用对应employee表中的status字段,1为启用,0为禁用。controller中对应的方法如下:

    @PutMappingpublic R<String> update(HttpServletRequest request,@RequestBody Employee employee) {log.info("修改的用户id为{}", employee.getId());Long empId = (Long)request.getSession().getAttribute("employee");employee.setUpdateTime(LocalDateTime.now());employee.setUpdateUser(empId);employeeService.updateById(employee);return R.success("更新员工成功");}

 当点击后发现并没有被禁用,数据库中该用户的status字段也没有更新成功。通过debug发现请求发送时携带id与数据库中的不同

 

而页面展示的时候返回的数据id也是正常的

 

二、问题分析

这是因为页面js处理Long型数据只能精确到前16位,所以最终ajax提交到服务器的请求中id后几位被四舍五入了

三、解决方法

我们可以在服务端给页面响应json数据时进行处理,将long型数据统一转为String字符串,效果如下:

具体实现步骤:

  1. 提供对象转换器Jackson0bjectMapper,基于Jackson进行Java对象到json数据的转换
  2. 在WebMvcConfig配置类中扩展Spring mvc的消息转换器,在此消息转换器中使用提供的对象转换器进行java对象到json数据的转换 
/*** 对象映射器:基于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);}
}

webmvc配置类 

@Configuration
@Slf4j
public class WebMvcConfig extends WebMvcConfigurationSupport {/** 扩展MVC框架的消息转换器*/@Overrideprotected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {log.info("消息转化器添加成功");// 创建消息转换器MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();// 设置对象转换器,底层使用jackson将java对象转换为jsonconverter.setObjectMapper(new JacksonObjectMapper());// 将上面的消息转换器添加到mvc框架的转换器集合中converters.add(0, converter);}
}


http://chatgpt.dhexx.cn/article/AQT8CO96.shtml

相关文章

java long格式化输出_C语言中输出long long型数据怎么输出?

展开全部 C语言中输出long long型数据使用%lld格式输出的e68a843231313335323631343130323136353331333365633838方法&#xff1a; 1、 long long 是C99标准对整型类型做的扩展&#xff0c;每个long long类型的变量占8字节&#xff0c;64位。其表示范围为-9223372036854775808~…

long型数字计算

在进行以亿为单位的数字计算时&#xff0c;int型往往会有溢出的问题&#xff0c;这时我们需要使用long型数字进行计算 public class demo04 {public static void main(String[] args) {//JDK7新特性&#xff0c;数字之间可以用下划线分割int money 10_0000_0000;int years 2…

随机游走模型(RandomWalk Mobility)

随机游走模型由首先由爱因斯坦在1926年以数学方式描述。由于自然界中的许多实体会以不可预知的方式移动&#xff0c;因此随机游走模型用来描述这种不稳定的移动。在这种移动模型中&#xff0c;移动节点随机选择一个方向和速度来从当前位置移动到新的位置。新的速度和方向分别从…

随机游走和趋势指标

简介 掷硬币游戏很久以来就存在了。让我们来玩这个游戏,不过目的在于测试并理解 FOREX 市场中的技术交易机制。我们并不是第一个将硬币拿在手中的人。那些希望更加详细地学习概率论的人可以参考 William Feller 所写的《An Introduction to Probability Theory and Its Appli…

图模型-随机游走算法

文章目录 推荐基本概念PageRankPersonalRankTextRankSimRank 推荐基本概念 其中用户user[A,B,C],物品item[a,b,c,d]&#xff0c;用户和物品有以下的关系 上述便是一个典型的二分图&#xff0c;我们用G(V,E)来表示&#xff0c;其中V为用户user和物品item组成的顶点集即[A,B,C…

链接分析之随机游走模型和子集传播模型

两个web页面通过hyperlink连接&#xff0c;可以认为这两个页面具有某种关系&#xff0c;在科学文献中这种关系很大程度上可以认为是引用文献与被引用文献在内容、主题上有很多的相似性&#xff0c;并且利用这种引用关系在信息计量学领域可以计算期刊的影响因子。互联网包含了浩…

【蚊子无人机】基于matlab随机游走模型无人机消除蚊子路径规划【含Matlab源码 2433期】

⛄一、随机游走模型 随机游走模型是通过随机选取某一文献作为起点&#xff0c;随机游走所有的文献&#xff0c;根据信息特征相似性对游走线路作加权处理&#xff0c;查阅所有文献后完成聚类。 随机游走算法通过对数据集进行统一的定义&#xff0c;把给定的数据集合作为固定数…

Meta Path Based Random Walk复现思路【基于元路径的随机游走模型】

title: Meta Path Based Random Walk date: 2022-02-13 00:43:08 tags: NLP的一些收获 课题原因需要复现ARNN模型。即“An Attentional Recurrent Neural Networkfor Personalized Next Location Recommendation”这篇论文&#xff0c;早就听说随机游走模型以及PageRank之类的…

随机游走模型(Random Surfer Model)

《这就是搜索引擎&#xff1a;核心技术详解》第6章链接分析&#xff0c;本章主要介绍一些著名的链接分析方法。本节为大家介绍随机游走模型&#xff08;Random Surfer Model&#xff09;。 互联网用户在上网时&#xff0c;往往有类似的网络行为&#xff1a;输入网址&#xff0c…

R语言模拟和预测ARIMA模型、随机游走模型RW时间序列趋势可视化

最近我们被客户要求撰写关于​​​​​​​时间序列的研究报告&#xff0c;包括一些图形和统计输出。 当一个序列遵循随机游走模型时&#xff0c;就说它是非平稳的。我们可以通过对时间序列进行一阶差分来对其进行平稳化&#xff0c;这将产生一个平稳序列&#xff0c;即零均值…

高斯消元配合概率dp-图上随机游走模型

2023大厂真题提交网址(含题解): www.CodeFun2000.com&#xff08;http://101.43.147.120/&#xff09; 最近我们一直在将收集到的机试真题制作数据并搬运到自己的OJ上&#xff0c;供大家免费练习,体会真题难度。现在OJ已录入50道2023年最新大厂真题&#xff0c;同时在不断的更…

ARIMA模型、随机游走模型RW模拟和预测时间序列趋势可视化

原文链接&#xff1a;http://tecdat.cn/?p25122 当一个序列遵循随机游走模型时&#xff0c;就说它是非平稳的。我们可以通过对时间序列进行一阶差分来对其进行平稳化&#xff0c;这将产生一个平稳序列&#xff0c;即零均值白噪声序列。例如&#xff0c;股票的股价遵循随机游走…

随机游走(Random Walk)模型

Random Walk Model 1 模型及性质简介 给定一随机变量 u ( i ) { 1 , − 1 } u(i){\{1, -1\}} u(i){1,−1} 随机游走模型可表示为随时间 t t t变化的函数 y ( t ) ∑ i 1 t u ( i ) y(t)\sum_{i1}^{t} u(i) y(t)i1∑t​u(i) 几条随机游走可视化路线如下 性质一&#xff1a;…

读《PROSOSPEECH: ENHANCING PROSODY WITH QUANTIZED VECTOR PRE-TRAINING IN TEXT-TO-SPEECH》

当下韵律建模存在的问题&#xff1a; 1 提取的基音pitch信息存在误差&#xff0c;导致韵律合成出现问题 2 对韵律生成的相关要素 如基频 时长 能量等相互依存(dependent on each other) 共同产生了韵律相关的特征 3 韵律信息较高的可变性和高质量数据数目较少 导致不能完全学习…

UE4官方文档_Light Propagation Volumes_LPV方案

光线传播体积&#xff08;Light Propagation Volumes&#xff09;功能仍在开发中&#xff0c;不适用于生产。 本页面的内容&#xff1a; 启用光线传播体积基础场景设置光线传播体积设置 调整外观和性能 定向光源设置查看全局照明显示光线传播体积GI 替换材质切换其他注意事项 启…

Ue4 使用lpv快速增强间接光照效果

LPV缩写Light Propagation VolumesUe4自带&#xff0c;效果还可以&#xff0c;能快速在项目中实现不需要烘焙的间接光照效果主要原理使用光照生成点云进行对物体表面间接光进行计算测试版本4.16.3如何开启把r.LightPropagation1 加入到 consolevariables.ini 文件最后 &#…

实时GI方案概述

LPV CryTek原创的&#xff0c;但是貌似因为漏光的问题&#xff0c;没有广泛应用起来。 SVO VXGI Enlighten Enlighten的实时GI解决方案用的时预计算实时全局照明 (Precomputed Realtime GI)&#xff0c;这是一种允许交互式更新场景照明的技术&#xff0c;采用的是辐射度算…

IPVLAN

IPVLAN 一、拓扑图二、实验内容三、配置信息 一、拓扑图 二、实验内容 假设S1交换机由于某种原因无法配置&#xff0c;利用IP地址划分在S3做相应配置使得PC能供与服务器正常通信 三、配置信息 1、接口信息配置 S1的0/0/1和0/0/2接口无任何配置&#xff0c;0/0/3接口配置了a…

LPI

概述 LPI全称是Locality-specific Peripheral Interrupts&#xff08;LPIs&#xff09;&#xff0c;GICv3有两种方式支持LPIs&#xff1a; 1&#xff09;使用ITS把从设备发送的EventID转换成LPI INTID 2&#xff09;直接转发LPI INTID到Redistributors&#xff08;GICR_SETL…

系统辨识和自适应控制

系统辨识知识要点 1.为什么采用负反馈技术 2.什么是自适应控制&#xff0c;为什么采用自适应控制&#xff0c;指出自适应控制的使用场合 3.学习了什么辨识方法&#xff0c;这些方法之间的联系 4.最小二乘中的无偏性和一致性指的是什么 5.什么是白噪声 白噪声是一种具有…