如何在Struts中显示成功消息?

aju*_*shi 3 java struts java-ee

我们可以通过执行actionErrors.add(key,new Actionmessage("string")),addErrors(request,actionErrors)来显示Struts中的错误; 然后通过输出到JSP页面

我想知道,如何在Struts中输出成功消息?你通常/通常如何做到这一点?

Dan*_*elo 10

在Struts 1上,您可以使用ActionMessage实例来表示要在JSP上显示的消息

ActionMessages messages = new ActionMessages();
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message1");
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message2");
saveMessages(request, messages); // storing messages as request attributes
Run Code Online (Sandbox Code Playgroud)

"message1"和"message2"是资源属性文件的键.与ActionError处理非常相似

在JSP上显示消息与操作错误类似,但您必须包含属性"message"

<logic:messagesPresent message="true">
   <html:messages id="message" message="true">
     <bean:write name="message"/><br/>
   </html:messages>
</logic:messagesPresent>
Run Code Online (Sandbox Code Playgroud)

在此示例中,消息存储为属性请求.如果要控制属性名称,可以指定任何属性名称

ActionMessages messages = new ActionMessages();
messages.add("appMessage", new ActionMessage("message1");
saveMessages(request, messages); // storing messages as request attributes
Run Code Online (Sandbox Code Playgroud)

现在消息存储在请求属性"appMessage"下.如果要在JSP上使用JSTL标记而不是Struts标记,则设置自定义属性名称可能很有用

此外,您可以在会话范围上保存操作消息.

saveMessages(request.getSession(), messages); // storing messages as request attributes
Run Code Online (Sandbox Code Playgroud)

您可以使用此功能在用户会话上显示粘性消息,例如用户全名.

  • 这不是所有正确的信息。只有 ActionMessages 对象在请求中存储了一个 bean。ActionMessage 对象没有,您必须通过 ActionMessages 的属性访问它们。因此,使用 messages.add(appMessage, ...) 不会将 appMessage 添加为请求属性..它在 JSP 中将无法作为 &lt;bean:write name=appMessage&gt; 等访问。 (2认同)