我想支持在我的GWT应用中链接url请求参数。实施例
http://host/app?action=A&p1=v1&p2=v2
我能够处理动作= A&其他参数,但一旦完成,我想更改URL以删除它们。
问题是,一旦用户进入网页,就完成了参数p1&的“动作”。 p2,他可以浏览网站,并返回同一页面进行相同的“动作”,但参数p1,p2的值不同。第二次,我真的不想处理p1和amp;的旧值。 P2
我检查了Window.Location.replace(),但它重新加载了页面,所有应用程序状态都丢失了。
有没有办法在没有params的情况下完全重新加载页面?也许通过“删除”查询参数?
任何其他更合理的方法来实现这一目标?
答案 0 :(得分:3)
您是否尝试过History课程?您可以侦听ValueChangeEvent
,在那里解析参数(url的格式会稍微改变但不应该是一个问题)然后你可以“清理”当前页面的url History.newItem("something/maybeNull")
或History.newItem("something/maybeNull", false)
,如果你想阻止
发射ValueChangeEvent
事件。
答案 1 :(得分:0)
如果可以的话,每个Igro的建议就是你要走的路。如果您必须先处理服务器上的信息,然后才能向某人显示将要托管GWT的页面,那么您可以使用servlet或您使用的任何服务器端技术处理它们,并发送304以重定向用户到URL中没有get Params的页面。你也可以使用POST而不是GET,但这也很丑陋(取决于你究竟在做什么)。如果可能的话,一定要尝试使用历史系统。