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

th3*_*aly 2 java spring controller

我有一个显示,编辑和删除帐户的应用程序.

  1. 显示使用displayAccounts.jsp和由/accountsurl 调用
  2. 编辑使用editAccount.jsp,并由要编辑的帐户的主键/accounts/{id}/edit位置调用id.
  3. 删除没有自己的视图,只是@RequestMapping在Controller中调用方法,并被调用/accounts/{id}/delete

成功时,每个操作都会重定向到"显示"页面.

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

  2. 由于我没有删除操作的视图,我也希望在显示页面中显示错误.

请帮忙.提前致谢.

Jap*_*edi 8

使用RedirectAttributes是您实现这一目标所需要的.我假设从EDIT和DELETE操作的POST方法,您使用"redirect:"通过其控制器重定向到DISPLAY视图.

要实现这一点,您需要RedirectAttributes attributes在控制器功能中作为参数.然后在return语句之前添加以下代码行.

attributes.addFlashAttribute("successMsg", "Account Edit/Delete successfully");
Run Code Online (Sandbox Code Playgroud)

要么

attributes.addFlashAttribute("errorMsg", "Edit/Delete account is unsuccessful");
Run Code Online (Sandbox Code Playgroud)

如果出现错误消息.

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

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

这非常适合您的场景.即使我用它.

希望这对你有所帮助.干杯.