Как перенести `error_messages_for` из Ruby Erb в Java JSP / JSTL? - PullRequest
1 голос
/ 24 августа 2010

Как бы вы перенесли эту интерфейсную логику с erb на jsp / jstl?

<%= error_messages_for :foo %>

Есть ли какая-нибудь библиотека Java, которая делает что-то подобное?

1 Ответ

1 голос
/ 24 августа 2010

Сохраните их в Map<String, String> в бизнес-коде, поместите его в область запроса следующим образом:

Map<String, String> messages = new HashMap<String, String>();
request.setAttribute("messages", messages);
// ...
messages.put("foo", "Please enter valid value");

Затем вы можете получить доступ к нему в JSP обычным способом EL с помощью ${messages.key} или ${messages['key']}:

<input id="foo" name="foo" value="${fn:escapeXml(param.foo)}">
<label for="foo" class="error">${messages.foo}</label>

EL встроен в JSP с давних пор.Вам не нужно устанавливать его.Только fn:escapeXml (который является обязательным для предотвращения XSS) является частью JSTL, который может потребоваться установить отдельно на определенных контейнерах сервлетов.

...