首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

frontpage从model.addAttribute获取对象的长类型id丢失精度

是因为在传递对象的过程中,长类型id的值可能超出了前端页面所支持的精度范围,导致丢失精度。为了解决这个问题,可以采取以下几种方法:

  1. 使用字符串类型传递id:将长类型id转换为字符串类型,在前端页面接收时再进行解析。这样可以避免精度丢失的问题。在后端代码中,可以使用String.valueOf()方法将长类型id转换为字符串类型,然后通过model.addAttribute()方法传递给前端页面。
  2. 使用较短的数据类型传递id:如果长类型id的值不是非常大,可以考虑将其转换为较短的数据类型,如整型或短整型。在前端页面接收时,再将其转换回长类型id。这样可以减小数据传输的大小,同时也可以避免精度丢失的问题。
  3. 使用其他方式传递id:除了通过model.addAttribute()方法传递对象,还可以考虑使用其他方式传递id,如通过URL参数、表单提交等方式。这样可以避免对象传递过程中的精度丢失问题。

需要注意的是,以上方法只是解决了长类型id丢失精度的问题,对于其他属性的传递仍然需要根据具体情况进行处理。

关于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体品牌商,无法给出具体的产品推荐。但是腾讯云提供了丰富的云计算服务,包括云服务器、云数据库、云存储等,可以根据具体需求选择适合的产品。可以参考腾讯云官方网站获取更多信息:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SpringMVC详细笔记整合

Id包含在Request对象中。可以Request对象中取id。想获得Request对象只需要在Controller方法形参中添加一个参数即可。...中获取请求参数 String strId = request.getParameter("id"); // 把数据放在模型中 model.addAttribute("item", service.findById...中获取请求参数 String strId = request.getParameter("id"); // 把数据放在模型中 model.addAttribute("item", service.findById...("item", service.findById(id)); return "itemEdit"; } 支持数据类型 参数类型推荐使用包装数据类型,因为基础数据类型不可以为null 整形:Integer...、int 字符串:String 单精度:Float、float 双精度:Double、double 布尔型:Boolean、boolean 说明:对于布尔类型参数,请求参数值为true或false。

91860
  • _SpringBoot自带模板引擎Thymeleaf使用详解②

    ("users",users); 在页面中展示数据且配合状态变量 thymeleaf将遍历状态变量封装到一个对象中,通过该对象属性可以获取状态变量: 状态变量 含义 index 当前迭代器索引,...0开始 count 当前迭代对象计数,1开始 size 被迭代对象长度 odd/even 布尔值,当前循环是否是偶数/奇数,0开始 first 布尔值,当前循环是否是第一条,如果是返回true...>id         姓名         年龄         当前迭代器索引,0开始         当前迭代对象计数...,1开始         被迭代对象长度         布尔值,当前循环是否是偶数,0开始         布尔值,当前循环是否是奇数...>         Key     运行结果:  二、获取域中数据和URL写法 2.1 获取域中数据 thymeleaf也可以获取request,session,application

    14700

    mongo常用字段类型

    它和JSON一样,支持内嵌文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型。它支持下面数据类型。...,如果是数字(默认是double类型)也可以,但是有精度丢失风险,会把数字变成15位(小数点不计算在内) 2.5 数字类型相加测试 以上4中都为数字类型,进行decimal与个类型数字相加测试,如果如下..."2019-01-05T15:28:33.705+08:00") 3、mongo中使用大整数精度丢失问题 Mongo shell中使用大整数字面量,但默认整数字面量类型却是双精度浮点数,导致丢失精度 问题描述...如上面例子中,存入20位数字,实际上能有效表示数字只有16位,另外4位发生精度丢失情况。...解决方法: 使用NumberLong()函数构造整型类型,记住传入参数一定要加双引号,否则使用整数的话又会被当做double而可能丢失精度

    6.8K30

    浅浅入门SpringBoot之Thymeleaf模板

    Thymeleaf中变量表达式使用${变量名}方式获取Controller中model其中数据(request作用域中数据)。...标准变量表达式语法:${key},作用:获取key对于文本数据,key是request作用域中key,使用request.setAttribute(),model.addAttribute()在html...循环状态变量Index: 当前迭代对象下标(0-n)Count:当前迭代对象个数(0-n)Size:被迭代对象大小Current:当前迭代变量even/odd :布尔值,当前循环是否为偶数...#session对象方法Session表示HttpSession对象,是#session简单表示方式。...在非web环境下,他能直接显示模板上静态数据;在web环境下,它能像Jsp一样后台接收数据并替换掉模板上静态数据。

    94840

    Spring MVC 请求映射与参数

    原生 HTTP 参数都是字符串类型,在传统 Servlet 中,我们需要通过 request 对象获取。...String 变量 = request.getParameter("参数名");  如果获取ID 值,或者是日期,还要进行非空判断和类型转换,倘若一次获取很多表单(form)字段,代码将会冗长。...在 Spring MVC 中,我们可以在控制器方法中直接获取用户提交请求参数,只要方法参数名字和请求参数名字相同即可,Sprig MVC 还会自动对参数作相应类型转换。 ...; … } (3)  使用 Servlet API  MVC 框架优化了参数获取或模型推送,这些操作都不需要 request、response 对象,也就是所谓 Servlet API。...0:id; if(id>0){ Movie m = movieBiz.fetchById(id); model.addAttribute("movie

    1.5K20

    @Valid注解使用---SpringMvc中校验框架@valid和@validation概念及相关使用

    private Integer age; ② 其次在controller层方法要校验参数上添加@Valid注解,并且需要传入BindingResult对象,用于获取校验失败情况下反馈信息,如下代码...4.JSR303定义校验类型 ?...@Pattern 验证 String 对象是否符合正则表达式规则 数值检查,建议使用在Stirng,Integer类型,不建议使用在int类型上,因为表单值为“”时无法转换为int,但可以转换为...这个约束参数是一个通过BigDecimal定义最大值字符串表示.小数存在精度 @DecimalMin 被标注值必须不小于约束中指定最小值....,fraction=) 验证字符串是否是符合指定格式数字,interger指定整数精度,fraction指定小数精度

    3.6K10

    Spring MVC 学习总结(五)——校验与文件上传

    bindingResult.hasErrors()) { // 根据类型编号获得类型对象 product.setProductType(productTypeService.getProductTypeById...,该类型继承自Errors,获得绑定结果,承载错误信息,该对象中有一些方法可以获得完整错误信息,可以使用hasErrors方法判断是否产生了错误。...这个约束参数是一个通过BigDecimal定义最大值字符串表示.小数存在精度 @DecimalMin 被标注值必须不小于约束中指定最小值....=) 验证字符串是否是符合指定格式数字,interger指定整数精度,fraction指定小数精度。...bindingResult.hasErrors()) { // 根据类型编号获得类型对象 product.setProductType(productTypeService.getProductTypeById

    1K10

    SpringMvc基础知识

    1.SpringMvc是什么 Spring Web MVC是一种基于Java实现了Web MVC设计模式请求驱动类型轻量级Web框架,即使用了MVC架构模式思想,将web层进行职责解耦,基于请求驱动指就是使用请求...——>HandlerAdapter,HandlerAdapter将会把处理器包装为适配器,从而支持多种类型处理器,即适配器设计模式应用,从而很容易支持很多类型处理器; 4、 HandlerAdapter...}") public String doIndex(@PathVariable("id") Integer id, Model model){ model.addAttribute("id",id...,把那个URL响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送内容哪里来,所以它地址栏还是原来地址....6.在没有RequestMapping方法中使用获取request对象 HttpServletRequest request1 = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes

    50230

    一个数据精度引发血案

    前言 最近在做X项目的时候用到了弹性搜索引擎ES(Elasticsearch),在检索遇到了一个诡异问题,当存储()整型数据超过某个值(具体就是百万),就会出现数据精度丢失情况,比如put下面一个数据...经过定位发现是将json对象转发string时候出现了数据改变,如下面的红框代码,出问题就是这一行代码。...分析发布正常使用Jce对象时候都会指定数据类型格式,而TC_Json做解析时候并没有这样子去做(如下源码),也就是说如果使用TC库去解析json,然后再回写成string,出现大整数或double数据则会出现精度丢失...,精确范围分别为小数点后6位和15位,采用流算子对double数据进行json转换还是存在精度丢失问题,虽说浮点型数据在逻辑服务开发工作中比较少用到,但是框架角度希望能有一个比较完美的解决方案。...结语 SRF/TAF框架提供了一些公共函数实现Number到String转换,大量都采用流算子实现,大家在日常业务代码开发中,用它处理浮点型数据要十分注意数据精度丢失问题。

    4K20

    第7章—SpringMVC高级技术—处理异常

    (spittle); return "spittle"; } 通过ID检索Spittle对象。...public class SpittleNotFoundException extends RuntimeException { } 如果调用spittle()方法来处理请求,并且给定ID获取结果为空...作为样例,假设除了username以外,模型中还要包含新创建Spitter对象id属性,那processRegistration()方法可以改写为如下形式: ?...模型数据最终是以请求参数形式复制到请求中,当重定向发生时候,这些数据就会丢失。因此,我们需要将Spitter对象放到一个位置,使其能够在重定向过程中存活下来。...另外,我们还可以不设置key参数,让key根据值类型自行推断得出:因为我们传递了一个Spitter对象给addFlashAttribute()方法,所以推断得到key将会是spitter 在重定向执行之前

    1.3K40

    js精度丢失

    ——三毛 我们在进行开发时可能会遇到这样一个坑,那就是js代码精度丢失 可以看到16位以后就会出现精度丢失问题 我们定义一个简单接口,这里用com.baomidou.mybatisplus.core.toolkit.IdWorker.getId...()生成19位为Long类型id @GetMapping("json") @ResponseBody public Ruben json() { return new Ruben(IdWorker.getId...} } 请求一下 可以看到我们Response中是正常 但Preview中就出现了精度丢失问题 当然,我们可以转换为string,这样就不会出现精度丢失问题 但是,我们在返回json格式数据接口中如果要一个一个处理的话非常麻烦...生成主键太长导致 js 精度丢失 // JavaScript 无法处理 Java 整型 Long 导致精度丢失,具体表现为主键最后两位永远为 0,解决思路: Long 转为 String...> 可以看到浏览器控制台里确实是替换成功了 但我们控制台输出数据出现精度丢失了 所以我们可以如下解决,直接在外层套个引号即可

    2.3K10

    01-Springboot博客项目

    前后端数据交互 (1)控制器参数对应表单提交参数即可自动实现注入;若为model,也能实现自动注入 ①使用总结:控制器中形参类型,在表单中直接提交形参类型属性即可。...实际HttpEntity中获取数据,而Get请求没有HttpEntity,因此不适用。...Predicate:动态查询条件容器 Root:查询对象,可以从中获取到表字段 CriteriaBuilder:设置条件表达式 CriteriaQuery:进行查询 ---- 8....//如果首页进来,则id=-1,默认展示type第一个 id = types.get(0).getId(); } //需求是通过id查询blog...th:value="*{id}"> th:object 拿到后端传递对象 *{id} 意思式 object.id 之所以放一个hidden input标签,是为了将当前id传递给控制器(也可以不用

    1.9K20
    领券