用Spring添加消息

Jav*_*avi 6 java spring spring-mvc

我已经看到我可以添加错误并通过类的<form:errors />标签和addError()方法呈现它们BindingResult,但我想知道是否有类似的东西向JSP发送信息消息.

我的意思是,我想在操作成功时添加消息.我知道我可以通过发送错误来做到这一点,但是在没有任何错误的情况下添加错误对我没有任何意义.

Boz*_*zho 2

有趣的。我在我的一个旧项目中发现了这个:

(这是一个基本控制器,但很可能是一个实用方法)

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);
}
Run Code Online (Sandbox Code Playgroud)

然后在messages.jsp我拥有的所有页面中包含:

<c:forEach items="${messages}" var="message">
   //display messages here
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

MESSAGES_KEY是我的一个常量,其值为“messages”(以便稍后可以在 forEach 循环中访问它)。

该类Message是一个具有这两个属性的简单 POJO。我将它用于信息消息以及自定义非验证错误。

这是一个相当定制的解决方案,但也许我当时还没有找到内置的解决方案。在使用这样的解决方案之前,请多谷歌一下。