java - Spring - 如何在 View 之间传递消息?

标签 java spring controller

我有一个可以显示、编辑和删除帐户的应用程序。

  1. Display 使用 displayAccounts.jsp 并由 /accounts url 调用
  2. Edit 使用 editAccount.jsp 并由 /accounts/{id}/edit 调用,其中 id是要编辑的帐户的主键。
  3. Delete没有自己的 View ,只是调用Controller中的@RequestMapping方法,并由/accounts/{id调用}/删除

每个操作成功后都会重定向到显示页面。

  1. 成功执行操作(编辑/删除)后,我想发送一条可以显示在“显示”页面上的成功消息。我怎样才能做到这一点?

  2. 由于我没有删除操作的 View ,因此我也想在“显示”页面中显示错误。

请帮忙。提前致谢。

最佳答案

使用 RedirectAttributes 是实现此目的所需的。我假设从 EDIT 和 DELETE 操作的 POST 方法中,您使用“redirect:”通过其 Controller 重定向到 DISPLAY View 。

要实现此目的,您需要将 RedirectAttributes 属性 作为 Controller 函数中的参数。然后在 return 语句之前添加以下代码行。

attributes.addFlashAttribute("successMsg", "Account Edit/Delete successfully");

attributes.addFlashAttribute("errorMsg", "Edit/Delete account is unsuccessful");

如果出现错误消息。

然后在 displayAccounts.jsp 页面上,您只需使用 ${successMsg}${errorMsg} 显示消息

一旦显示该消息,如果您刷新页面,则该消息将不会出现。它只会向用户显示一次。

这非常适合您的场景。即使我也用这个。

希望这对您有帮助。干杯。

关于java - Spring - 如何在 View 之间传递消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12633916/

相关文章:

java - Java 8 中可序列化 lambda 的性能

java - 如何使用流对不在索引范围内的元素做一件事而在范围内做另一件事?

asp.net-mvc - 许多 Controller 会降低性能吗? MVC

angularjs - 如何从 AngularJS 中的另一个 Controller 调用函数?

java - 在 XPage 项目中使用 JOptionPane 对话框

java - Andengine和box2d碰撞检测

java - 从@Valid 验证中排除某些字段

java - 如何使用 thymeleaf 作为模板引擎和 Flying Saucer 作为渲染器使用密码保护 pdf 报告

spring - 尝试创建测试时注入(inject) Autowiring 依赖项失败

Play Framework 中 Scala 项目中的 Java Controller ?