【问题标题】:Removing success message after jsp page refresh?jsp页面刷新后删除成功消息?
【发布时间】:2015-07-02 08:56:26
【问题描述】:

我有一个 JSP 页面,它显示成功删除项目的成功消息。

但是,如果刷新页面,我希望不显示该消息。我尝试了所有我能做的,但它没有发生。

我在请求范围内的 Struts 2 类中设置属性。我正在使用request.getattribute() 在我的JSP 页面中检索相同的属性。在 if 语句之后,我试图将相同的属性设置为 null。但是刷新我不想要的页面后,成功消息仍然存在。

请帮忙!

【问题讨论】:

  • 你的代码在哪里?你为什么不按 S2 的方式来做呢?
  • 你需要阅读MessageStore Interceptor and Post-Redirect-Get pattern。像现在这样,您不仅有显示两次消息的问题,而且还有每次刷新时执行的操作的问题,是吗?
  • 当你刷新时,你正在通过 URL 传递参数(假设)。请在刷新之前修剪它。
  • 机密。不能显示它。对不起!

标签: java jsp struts2


【解决方案1】:

如果您刷新页面,(我假设是从浏览器中)您实际上是在再次向服务器发送相同的请求。这意味着,它将执行它执行的任何操作,再次根据请求放置该属性,然后您将在 JSP 页面中将其取回。 如果你想避免这种情况,你应该有办法在服务器端告诉该操作已经执行,以便不将属性放在请求上(例如,如果你插入一些东西,总是在如果尚未插入,如果是,请不要将该属性放在请求中)。

【讨论】:

  • 你的建议奏效了!你个天才!我在我的 jsp 逻辑中放置了一个计数器,并且仅当计数为 0 时才允许显示消息。如果消息显示一次,计数器会增加,因此不为 0,因此不会显示消息。谢谢!
  • 很高兴为您提供帮助。只需标记答案,以便其他人搜索以知道它可以将解决方案用于类似问题。谢谢。
  • 请注意:用计数器解决这类问题的方法非常丑陋。
猜你喜欢
  • 1970-01-01
  • 2017-02-27
  • 2016-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-03
相关资源
最近更新 更多