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

3
我们可以通过 actionMessages.add(key, new ActionMessage("string")) 和 addMessages(request, actionMessages) 在 Struts 中显示错误信息,然后通过在 JSP 页面中输出来实现。
我想知道,在 Struts 中如何输出成功消息?通常/惯例上该怎么做呢?
2个回答

11
在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

""message1"和"message2"是您资源属性文件中的键。与ActionError处理非常相似。在JSP上显示消息类似于操作错误,但必须包含属性“message”。"
<logic:messagesPresent message="true">
   <html:messages id="message" message="true">
     <bean:write name="message"/><br/>
   </html:messages>
</logic:messagesPresent>

在这个例子中,消息被存储为属性请求。如果您想对属性名称进行控制,可以指定任何属性名称。
ActionMessages messages = new ActionMessages();
messages.add("appMessage", new ActionMessage("message1");
saveMessages(request, messages); // storing messages as request attributes

现在消息存储在请求属性"appMessage"下。如果您想在JSP上使用JSTL标签而不是Struts标签,设置自定义属性名称可能会很有用。
此外,您还可以将操作消息保存在会话范围内。
saveMessages(request.getSession(), messages); // storing messages as request attributes

你可以使用此功能在用户会话期间显示固定消息,例如用户的全名。

1
需要注意的是,关于将消息保存到会话的最后一个示例需要使用Struts 1.2.x或更新版本。 - Jawa
2
这并不是全部正确的信息。只有ActionMessages对象在请求中存储了一个bean。ActionMessage对象没有,您必须通过ActionMessages的属性访问它们。因此,使用messages.add(appMessage,...)不会将appMessage添加为请求属性...它将无法像<bean:write name = appMessage>之类的JSP中访问。 - KyleM

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接