Как вы моделируете флеш-ошибку Rails в jsp?

Есть ли jsp/jstl-эквивалент этой ошибки в Rails?

    <%- flash.each do |name, msg| -%>
      <%= content_tag :div, msg, :id => "flash_#{name}" %>
    <%- end -%>

Я искал предварительно построенное решение, которое так же просто, как эта идиома Rails.

1 ответ

Решение

Вы можете использовать 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 на самом деле не сравним с платформой RoC MVC. JSP/JSTL довольно низкоуровневый и практически не предлагает полезных абстракций / возможностей из коробки, чтобы представить достойный подход MVC. Вы можете вместо этого взглянуть на JSF 2.0. Это среда MVC, предоставляемая Java EE. JSP - это просто технология просмотра. JSTL - это просто стандартная библиотека тегов потока / функции / формата. Вот учебник JSF 2.0.

Другие вопросы по тегам