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

Thymeleaf表格列字符串缩写触发EL1043E错误的解决咨询

解决Thymeleaf abbreviate()方法的EL表达式错误问题

嘿,这个错误我太熟悉了——你犯了Thymeleaf EL表达式里一个很常见的小错误:在${}内部又嵌套了一层${},这直接违反了EL的语法规则,所以才会抛出EL1043E的语法错误。

错误原因分析

你原来的写法是:

<td th:text="${#strings.abbreviate( ${fgp.explanation}, 10)}"></td>

这里的问题在于,整个th-text的值已经包裹在${}里了,这本身就是EL表达式的上下文,在这个上下文里引用变量时,不需要再额外加${}。嵌套的${fgp.explanation}会被解析器当成意外的语法符号,自然就报错了。

正确实现写法

只需要把参数里多余的${}去掉,直接传入变量名即可:

<td th:text="${#strings.abbreviate(fgp.explanation, 10)}"></td>

这个写法的作用是:当fgp.explanation的长度超过10个字符时,会自动截断并在末尾添加省略号(比如原字符串是"this is my string",就会变成"this is my...");如果原字符串长度小于等于10,就会完整显示。

额外优化:处理空值情况

如果fgp.explanation有可能为null,建议搭配#strings.defaultString方法来避免空指针异常:

<td th:text="${#strings.abbreviate(#strings.defaultString(fgp.explanation, ''), 10)}"></td>

这样当变量为null时,会用空字符串代替,不会触发报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:36:32