You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JasperReports表达式求值错误:参数类型不匹配问题排查

问题根源与修复方案

错误根源

  • JasperReports对参数类型的校验非常严格:报表里明确声明account参数是java.lang.String类型,但你的Java代码传入的是Long对象,类型不匹配直接导致表达式求值失败。
  • 别以为只是判断!= null就不会有问题——JasperReports在处理参数时,会先尝试把传入的对象转换为报表声明的类型,Long转String没法自动完成,这就触发了JRExpressionEvalException。

核心问题点

  • 报表参数定义和Java传参的类型完全不匹配,违反了JasperReports的参数绑定规则。
  • 报表里的默认值"11111"是String类型,和你传入的Long类型本质上是两种不同的数据类型,哪怕逻辑上都是数字,类型不兼容照样报错。

修复方案

  • 方案1:调整Java传参类型:把要传入的Long类型account转成String再传,比如用String.valueOf(accountLong)处理后再放入参数Map。
  • 方案2:修改报表参数定义:把报表里account的类型改成java.lang.Long,同时把默认值改成11111(去掉引号,用Long类型的数值),让参数类型和Java传参保持一致。

内容的提问来源于stack exchange,提问作者Eljah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 15:00:56