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

SpringEL中使用T(Math)报EL1005E:找不到Math类型如何解决?

解决Thymeleaf中SpringEL调用Math.floor的EL1005E异常

问题原因

SpringEL的T()运算符引用Java类时,必须指定全限定类名。你直接写T(Math)会触发EL1005E异常,因为JDK的Math类全路径是java.lang.Math,SpringEL不会自动导入java.lang包下的类。

解决方法

方法1:使用全限定类名调用Math.floor

修改模板中的表达式,显式指定java.lang.Math:

startPage = ${T(java.lang.Math).floor(pageNumber / pageSize) * pageSize + 1}

方法2:利用整数除法简化计算(适用于pageNumber、pageSize为整数的场景)

如果pageNumber和pageSize都是整数,floor(pageNumber / pageSize)的效果等价于整数除法(自动舍去小数部分),可以直接简化表达式,避免调用Math类:

startPage = ${(pageNumber / pageSize) * pageSize + 1}

验证说明

修改后重新渲染模板,SpringEL就能正确解析表达式,计算出预期的startPage值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:03:24