2013-09-01 18 views
1

我正在做一个有很多形式的Spring web应用程序。成功保存表单时的常见做法是在会话中保存成功消息,然后将用户重定向到显示成功消息的相同或新链接。(春季)Web应用程序:显示表单保存成功的消息,而不保存在会话中?

在Spring中网,这是可以做到这样的:

request.getSession().setAttribute("successMessage", "Form saved successfully"); 
return "redirect:new_link"; 

我希望让我的应用程序无状态,但仍遵循重定向并呈现出形式保存,成功消息的做法。我希望有一个优雅的解决方案。一个简单的(但我觉得不理想的原因)解决方案是将消息作为字符串附加到返回的网址中,类似于以下内容,并让前端页面检测并显示消息。

return "redirect:new_link?successMessage=Form-saved-successfully"; 

我认为,任何想法或解决方案适用于任何网络应用程序,无论使用何种平台或编程语言。

任何输入真的很感激。

感谢和问候!

回答

2

假设你使用Spring 3.1或更高版本,那么你可以使用flash属性来达到这个目的。定义RedirectAttributes类型的方法属性。 javadoc有关于如何使用它们的示例。

尽管这不会使您的应用程序成为无状态,但它将删除直接会话。 (理论上,你可以实现你自己的FlashMapManager,因为默认值仍然存储在会话中)。

如果您想要一个无状态解决方案,您需要将消息(或消息代码)放入重定向URL或重定向到始终显示相同消息的特定“您的表单已保存”页面。