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

Kotlin项目中如何在Thymeleaf中获取枚举值?

问题修复方案

1. 先修正Thymeleaf表达式的语法错误

你的表达式末尾多了一个多余的右括号,这是导致解析失败的直接原因。另外,如果你要显示的是枚举中定义的displayValue(即"username"),还需要显式访问该属性。

正确的Thymeleaf代码如下:

<p>Login User:<span th:text="${T(com.project.example.authapp.types.SessionEnum).USERNAME.displayValue}"></span></p>

2. 关键细节说明

  • 语法修正:原表达式${T(...)USERNAME)}里的末尾)是多余的,必须删除,否则Thymeleaf无法正确解析类型引用。
  • 获取目标值:直接访问USERNAME得到的是枚举实例本身,Kotlin枚举默认的toString()输出是枚举常量名(即"USERNAME"),而你需要的是构造时传入的displayValue,因此必须通过.displayValue来访问该属性。

3. 更简洁的替代方案(推荐)

如果不想在前端写冗长的全限定类名,可以在后端将枚举实例放入Model中:

@GetMapping("/your-page-path")
fun getPage(model: Model): String {
    model.addAttribute("usernameEnum", SessionEnum.USERNAME)
    return "your-template-name"
}

然后前端直接引用Model中的属性:

<p>Login User:<span th:text="${usernameEnum.displayValue}"></span></p>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 00:12:08