Вы можете использовать JSTL c:forEach
для итерации по Map<String, String>
. Каждая итерация дает вам Map.Entry
, который в свою очередь имеет методы getKey()
и getValue()
. Предполагая, что вы поместили его в область запроса по ключу messages
, вот пример:
<dl>
<c:forEach items="${messages}" var="entry">
<dt>${entry.key}</dt><dd>${entry.value}</dd>
</c:forEach>
</dl>
Кстати, JSP / JSTL на самом деле не сравним с инфраструктурой RoR MVC. JSP / JSTL довольно низкоуровневый и практически не предлагает полезных абстракций / возможностей из коробки, чтобы представить достойный подход MVC. Вы можете вместо этого взглянуть на JSF 2.0. Это среда MVC, предоставляемая Java EE. JSP - это просто технология просмотра. JSTL является просто стандартным потоком / функцией / форматом taglib. Вот учебник по JSF 2.0 .