如何在 Map 中访问对象键而不在 Thymeleaf 中进行迭代



我有一个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;
}

在前端,我以下面的方式迭代了哈希图并访问了值。

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

使用上面的百里香叶代码,我得到了预期的结果。但是我需要知道是否有任何最简单的方法可以在不像这样迭代的情况下访问 HashMap 值?我正在使用百里香叶 3.0.0.发布版本。

您可以为此使用集合选择:

<span th:text="${results.^[key.attribute1 == 'SOME_VALUE'].values()[0].someAttribute}"/>

results.^[key.attribute1 == 'SOME_VALUE']返回一个包含单个元素的HashMap(在我看来,这应该返回一个Map.Entry,但事实并非如此(。然后我调用values()(HashMap上的一个函数,将 HashMap 中的值作为Collection返回(,[0]返回该Collection中的第一个元素。

最新更新