如何在百里香叶中使用"map.get(key)" - 阔叶电子商务



我有一个Hashmap (String, List<Offers>),传递到Thymelaf页面。我在页面上看到了这张地图,我可以访问它

如何用百里香做map.get(key)?我只需要根据某个键获取值,然后解析并打印该值,我知道并拥有该值的逻辑。

我正在运行一个Broadleaf应用程序,Thymelaf是它的UI引擎。

使用${map.get(key)}(其中key是一个变量)对我有用。

${map['key']}似乎只适用于字符串文本键——如果您查找的key变量,则${map[key]}似乎不起作用

访问给定键列表的Map条目

这里有一个完整的例子,在HashMap map中查找项目,给listOfKeys一个我想从映射中获得的元素键的有序列表。使用这样一个单独的listOfKeys可以控制迭代的顺序,并可以选择只返回映射中的元素子集:

<ul>
    <li th:each="key: ${listOfKeys}"">
        <span th:text="${key}"></span> = <span th:text="${map.get(key)}"></span>
    </li>
</ul>

循环浏览地图中的每个条目

如果您没有有序的密钥列表,但只想循环浏览地图中的每个项,则可以直接循环浏览地图的keySet()(但如果您的地图是HashMap,则无法控制返回的密钥的顺序):

<ul>
    <li th:each="key: ${map.keySet()}">
        <span th:text="${key}"></span> = <span th:text="${map.get(key)}"></span>
    </li>
</ul>

通过简单地遍历映射的entrySet,并访问每个返回条目的keyvalue成员,可以更简洁地表达这种用法:

<ul>
    <li th:each="entry: ${map}">
        <span th:text="${entry.key}"></span> = <span th:text="${entry.value}"></span>
    </li>
</ul>

您可以简单地使用${map.get('key')}

访问值的方法:

${map[__${key}__]}

您必须将键放在双下划线之间,以便对键变量进行预处理。

我使用下拉框,例如在地图上循环键

<select id="testId">
        <option th:each="item: ${itemsMap}" 
                th:value="${item['key']}"
                th:text="${item['value']}" />
</select>

如果得到一个特定的值,我使用

${itemsMap.get('key')}

在我有HashMap<String, String>的情况下,我必须像一样进行查找

<strong th:text="${map['__${entry.key}__']}"></strong>

访问某个密钥keyaccess的映射值的方法,假设您的模型中有映射mymap

${mymap['keyaccess']}

这将为您提供与条目相关联的列表,现在您可以对其进行迭代

如果需要,您可以迭代映射,就像迭代文档中任何其他支持的可迭代对象一样:

不仅java.util.List对象可以用于中的迭代胸腺。事实上,有一组相当完整的对象被认为可由th迭代:每个属性:

  • 实现java.util.Iterable的任何对象
  • 实现java.util.Map的任何对象。迭代映射时,iter变量将属于java.util.Map.Entry类
  • 任意数组
  • 任何其他对象都将被视为包含对象本身的单值列表

remaksMap是TreeMap,"id"是Long类型值

<div th:if="${#maps.containsKey(remarksMap, id)}">
   <textarea th:text="${remarksMap.get(id)}" rows="2" cols="30" maxlength="250" 
       autocomplete="off"></textarea>                               
</div>

所有的答案都引导我朝着正确的方向前进。以下代码(表列详细信息)有效:

<td>[[${statusesMap.get('__${employee.status}__')}]]</td>

statusesMap是一个映射<字符串,字符串>Employee是一个具有名为"status"的字段的员工类。

注意单引号。没有他们,这是行不通的。

最新更新