【问题标题】:GWT Change URL after processing request parametersGWT 处理请求参数后更改 URL
【发布时间】:2010-12-01 02:02:56
【问题描述】:

我想在我的 GWT 应用程序中支持与 url 请求参数的链接。示例

http://host/app?action=A&p1=v1&p2=v2

我能够处理 action=A 和其他参数,但一旦完成,我想更改 URL 以删除它们。

问题是,一旦用户来到网页,为了完成带有参数p1和p2的“动作”,他可能会浏览网站,然后回到相同的页面,执行相同的“动作”,但价值不同对于参数 p1,p2。不过第二次,我真的不想处理 p1 和 p2 的旧值。

我检查了 Window.Location.replace() 但它重新加载页面,并且所有应用程序状态都丢失了。

有没有办法在没有参数的情况下完全重新加载页面?也许通过“删除”查询参数?

还有其他更明智的方法来实现这一点吗?

【问题讨论】:

  • 就在我完成打字时,我看到了一种可能的方法。跟踪请求是否在app状态下处理过,下次不再处理。但我猜这个网址仍然会保留。

标签: url gwt process parameters request


【解决方案1】:

您尝试过History 课程吗?您可以收听ValueChangeEvents,解析那里的参数(网址的格式会有所改变,但这不应该成为问题),然后您可以使用@987654323“清理”当前页面的网址@ 或 History.newItem("something/maybeNull", false) 如果你想阻止 ValueChangeEvent 触发事件。

【讨论】:

    【解决方案2】:

    如果可以的话,根据 Igro 的建议,历史是最好的选择。如果您必须先处理服务器上的信息,然后才能向某人显示将托管 GWT 的页面,那么您可以使用 servlet 或您正在使用的任何服务器端技术处理它们并发送 304 以重定向用户访问在 URL 中没有获取参数的页面。您也可以使用 POST 而不是 GET,但这也很丑陋(取决于您到底在做什么)。如果可能的话,一定要尝试使用历史系统。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 2021-05-02
      相关资源
      最近更新 更多