как получить конкретное значение ключа из хеш-карты с помощью шаблона freemarker - PullRequest
0 голосов
/ 03 декабря 2018

ниже - это основная функция, в которую я помещаю некоторые значения ключа в хэш-карту.

как структурировать шаблон freemarker так, чтобы он считывал только одно значение ключа и не перебирал весь список

import freemarker.template.TemplateException;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class main {
    public static void main(String[] args) throws  TemplateException {
        HashMap<String, String> gtmData = new HashMap<String, String>();
        Map gtm = new HashMap();
        gtmData.put("Uid", "a12");
        gtmData.put("SettlementCurrency","USD");
        gtmData.put("Quantity","123455");
        Map root = new HashMap();
        root.put("hello", gtmData);

        FreeMarkerConverter convert = new FreeMarkerConverter();
        try {
            convert.setTemplateName("gtm-temp-h");
            convert.convert(root);
        }

        catch(IOException e) {
            e.printStackTrace();
        }
    }
}

Ниже приведен шаблон freemarker, где вместо root.SettlementCurrency я хочу получить значение этого ключа, но каждый пример показывал печать всего списка

"header"[
{
messageid :$(root.uid)
SettlementCurrency:$(root.SettlementCurrency)

}

]

1 Ответ

0 голосов
/ 10 декабря 2018

Я не полностью следую вашему примеру, но в своих шаблонах FreeMarker я использую обозначение Map[key].

Создание карты

Map<String, String> ringImageLocationMap = new HashMap<>();
for (Ring ringItem : ringItems){
    String url = getRingImageUrl(ringItem);
    ringImageLocationMap.put(ringItem.getIoItemGuid(), url);
}

Java добавляет карту к модели:

model.put("ringImageLocationMap", orderSummary.getRingImageLocationMap());

Бесплатный маркер, получающий доступ к карте

<#if (ringImageLocationMap[item.ioItemGuid])??> 
    <#assign location = ringImageLocationMap[item.ioItemGuid]>                                              
    <td colspan="4" style="padding-top: 100px; padding-bottom: 130px;">
        <img id="productImage" src="${location}" width="259"/>
    </td>
<#else>
    <td colspan="4" style="padding-top: 100px; padding-bottom: 130px;">
        &nbsp;
    </td>
</#if>
...