Ответ 1
Предполагая, что вы выполняете в контроллере:
render(map, itemList); //map is a Map
Эта должна работать:
#{list items:itemList, as:'item'}
// access the map value using the ${item?.id} as the key
${map.get(item.?id)}
#{/list}
Я использовал превосходную playframework и имел проблемы с поиском документации/примеров о том, как получить доступ к структуре данных карты из представления, используя механизм шаблонов игр.
Чтобы быть более конкретным, я хочу получить доступ к Карте, поскольку я перебираю список объектов, например,
#{list items:itemList, as:'item'}
// access the map value using the ${item?.id} as the key
#{/list}
Спасибо, что посмотрели.
Предполагая, что вы выполняете в контроллере:
render(map, itemList); //map is a Map
Эта должна работать:
#{list items:itemList, as:'item'}
// access the map value using the ${item?.id} as the key
${map.get(item.?id)}
#{/list}
Это общее решение для итерации на карте при использовании Play! Framework:
в контроллере:
render(map);
в шаблоне:
#{list items:map.keySet(), as:'key'}
${map.get(key)}
#{/list}
Тот факт, что вы хотите полагаться на сторону Список для итерации на Map, подсказывает мне, что вы ищете предсказуемый путь для своего итерационного процесса.
В этом случае просто помните, что итерация будет непредсказуемой, если вы не используете упорядоченную/отсортированную реализацию карты.
Я ничего не знаю о платформе воспроизведения, но это будет работать в GSP
#{list items:itemList, as:'item'}
${map[item?.id]}
#{/list}
Я делаю такие вещи на карте:
*{ Map<User, Integer> shareHolders = ... }*
#{list shareHolders.sort{it.value}.collect {k,v -> k}.reverse(), as:'holder'}
<tr>
<td>${holder.name}</td>
<td>${shareHolders[holder]}</td>
</tr>
#{/list}