假设一个 View 包含一个用户列表和一个指向另一个 View 的链接,该 View 包含一个用于将新用户添加到列表中的表单。您填写表格,然后单击提交。然后服务器收到该请求并尝试将记录插入数据库。这可能是成功的,也可能是失败的。在这两种情况下,您都会被重定向到带有用户列表的主视图。然后在用户列表中显示成功/失败消息。
此刻,当我完成数据库事务时,我使用保存消息的请求参数将用户重定向到主视图。主视图获取该消息,如果它不为空,则显示该消息。
虽然这可行,但它有一些缺点。例如,如果用户重新加载 View ,消息仍会弹出。所以我确定这不是解决问题的方法。
有更多的可能性可以做同样的事情,但我想知道实现这一点的最常见方法是什么(保存在 session 中,请求属性而不是请求参数......,以及如何处理消息一次显示。
感谢您的帮助!
最佳答案
可以在重定向之前添加一个 flash 属性:
1) 添加 RedirectAttributes redirectAttrs 到方法签名 2) 在重定向之前调用 redirectAttrs.addFlashAttribute() 添加您的消息
参见 example in spring docs here , PetClinic app中也有例子
关于java - 如何显示/处理成功/失败错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21705432/