Добавьте сообщения с Spring

Я видел, что могу добавить ошибки и представить их через <form:errors /> тег и addError() метод BindingResult класс, но интересно, существует ли что-то подобное для отправки информационных сообщений в JSP.

Я имею в виду, я хочу добавить сообщения, когда операция была успешна. Я знаю, что мог сделать это путем отправки ошибки, но не будет иметь никакого смысла мне добавлять ошибки, когда не было никакой ошибки вообще.

6
задан Macarse 5 August 2010 в 23:07
поделиться

3 ответа

интересно. Я нашел это в старом проекте :

(This был базовым контроллером, но вполне может быть полезным методом)

protected void addMessage(String key, boolean isError,
        HttpServletRequest request, Object... args) {
    List<Message> msgs = (List<Message>) request.getAttribute(MESSAGES_KEY);
    if (msgs == null) {
        msgs = new LinkedList<Message>();
    }

    Message msg = new Message();
    msg.setMessage(msg(key, args));
    msg.setError(isError);
    msgs.add(msg);
    request.setAttribute(MESSAGES_KEY, msgs);
}

, а затем в Messages.jsp , который был включен во все Страницы у меня было:

<c:forEach items="${messages}" var="message">
   //display messages here
</c:forEach>

Message_Key - это постоянная мона, со значением «Сообщения» (так что позже доступно в Foreach Loop).

Сообщение класс - простой POJO с этими двумя свойствами. Я использовал его для информационных сообщений, а также для пользовательских ошибок неконвеличества.

Это довольно настраиваемое решение, но, возможно, я не нашел встроенный раствор. Google немного больше перед использованием такого решения.

2
ответ дан 17 December 2019 в 00:09
поделиться

Почему вы не просто добавляете сообщения в качестве свойств модели, которая передается на просмотр. В вашем JSP вы бы проверили, если они не нулевые, а если нет, отображать их.

4
ответ дан 17 December 2019 в 00:09
поделиться

Используйте что-то вроде вспышек в рельсах.

Тяжелая часть состоит в том, чтобы сохранить сообщение в перенаправлении после поста . Я Вы отправляете форму, и вы перенаправляетесь на другую страницу, которая показывает сообщение, уведомляющее вас о том, что вы входили в свое действие.

Очевидно, что вы не можете сохранить сообщение в запросе, потому что он будет потерян после перенаправления.

Мое решение состоит в том, чтобы сохранить сеанс Scoped Bean , который содержит текст сообщения и его тип (уведомление, предупреждение или ошибка). Первый раз, когда вы прочитаете его в JSP, вы должны очистить его, чтобы не показывать его более одного раза.

1
ответ дан 17 December 2019 в 00:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: