猿问

如何在不迭代 Thymeleaf 的情况下访问 Map 中的对象键

我有一个 java 类Result,它包含一个名为results的变量,它是一个HashMap。


public class Result {


   private HashMap<Class1, Class2> results = new HashMap<>();


}

我使用名为Class1的对象作为上述 HashMap 的键。


public class Class1 {


   private String attribute1;


   private String attribute2;


   private String attribute3;


   private String attribute4;


}

在前端,我以下面的方式迭代 HashMap 并访问值。


<span th:each="result : ${results}" th:if="${#strings.equals('SOME_VALUE', result.key.attribute1)}" th:text="${result.value.someAttribute}"/>

使用上面的 thymeleaf 代码,我得到了预期的结果。但我需要知道有没有最简单的方法来访问 HashMap 值而不像这样迭代?我正在使用thymeleaf 3.0.0.RELEASE版本。


智慧大石
浏览 243回答 1
1回答

Helenr

您可以为此使用集合选择:<span&nbsp;th:text="${results.^[key.attribute1&nbsp;==&nbsp;'SOME_VALUE'].values()[0].someAttribute}"/>results.^[key.attribute1 == 'SOME_VALUE']返回一个HashMap包含单个元素的 a (在我看来这应该返回 a&nbsp;Map.Entry,但它没有)。然后我调用values()(一个HashMap将 HashMap 中的值作为 a 返回的函数Collection)并[0]返回该 中的第一个元素Collection。
随时随地看视频慕课网APP

相关分类

Java
我要回答