如何通过 SpEL 中枚举的值访问内联映射的值?
How to access the value of inline map through the value of an enum in SpEL?
我创建了一个 Thymeleaf 片段,我将其包含在我流程的所有 视图状态 视图中。
<th:block th:fragment="flow-messages"
th:with="alertTypes = ${ {'INFO':'alert-info','ERROR':'alert-error','WARNING':'alert-warning'} }">
<div
class="alert"
th:each="message: ${flowRequestContext.messageContext.allMessages}"
th:classappend="${alertTypes.get(message.severity)}">
<p th:text="${message.text}">Message text</p>
</div>
</th:block>
正如您在上面看到的,我初始化了一个具有严重级别 (org.springframework.binding.message.Severity) 和关联 bootstrap class.
的映射
问题是 alertTypes.get (message.severity) 不起作用(returns 一个空值)。而且我也没有办法添加对应的class.
有人知道我该如何解决这个问题吗?
尝试 th:classappend="${alertTypes.get(message.severity.toString())}"
而不是 th:classappend="${alertTypes.get(message.severity)}"
。
您创建的内联映射具有用于其键的字符串(而不是 Severity 类型的枚举)——因此使用枚举值调用 get() 将不匹配。
我创建了一个 Thymeleaf 片段,我将其包含在我流程的所有 视图状态 视图中。
<th:block th:fragment="flow-messages"
th:with="alertTypes = ${ {'INFO':'alert-info','ERROR':'alert-error','WARNING':'alert-warning'} }">
<div
class="alert"
th:each="message: ${flowRequestContext.messageContext.allMessages}"
th:classappend="${alertTypes.get(message.severity)}">
<p th:text="${message.text}">Message text</p>
</div>
</th:block>
正如您在上面看到的,我初始化了一个具有严重级别 (org.springframework.binding.message.Severity) 和关联 bootstrap class.
的映射问题是 alertTypes.get (message.severity) 不起作用(returns 一个空值)。而且我也没有办法添加对应的class.
有人知道我该如何解决这个问题吗?
尝试 th:classappend="${alertTypes.get(message.severity.toString())}"
而不是 th:classappend="${alertTypes.get(message.severity)}"
。
您创建的内联映射具有用于其键的字符串(而不是 Severity 类型的枚举)——因此使用枚举值调用 get() 将不匹配。