如何通过SpEL中的枚举值访问内联映射的值?

时间:2017-01-24 10:52:37

标签: thymeleaf spring-webflow spring-el

我创建了一个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)和相关的引导类初始化地图。

问题是 alertTypes.get(message.severity)不起作用(返回空值)。我无法添加相应的类。

任何人都知道如何解决这个问题?。

1 个答案:

答案 0 :(得分:1)

尝试使用th:classappend="${alertTypes.get(message.severity.toString())}"代替th:classappend="${alertTypes.get(message.severity)}"

您创建的内联映射的键具有字符串(而不是严重性类型的枚举) - 因此调用带有枚举值的get()将不匹配。