假设一个视图包含一个用户列表和一个指向另一个视图的链接,该视图包含一个表单,用于将新用户添加到列表中。填写表格,然后单击“提交”。然后服务器接收该请求并尝试在数据库中插入记录。这可能是成功或失败。在这两种情况下,您都会使用用户列表重定向到主视图。然后,成功/失败消息将显示在用户列表中。
目前,当我完成数据库事务时,我将用户重定向到主视图,其中包含保存消息的请求参数。主视图获取该消息,如果它不为null,则显示消息。
这很有效,它有一些缺点。例如,如果用户重新加载视图,则仍会弹出消息。所以我确定这不是这样做的方法。
有更多的可能性做同样的事情,但我想知道最常见的方法是什么(保存在会话中,请求属性而不是请求参数......,以及如何显示消息一次显示。
感谢您的帮助!
答案 0 :(得分:1)
可以在重定向之前添加一个flash属性:
1)将RedirectAttributes redirectAttrs添加到方法签名 2)调用redirectAttrs.addFlashAttribute()在重定向之前添加消息
请参阅example in spring docs here,PetClinic应用程序中还有一个示例