我想将基于GXT的视图(主要包含Grid)集成到现有的GWT应用程序中。
集成后,菜单的访问会导致浏览器的地址发生变化,例如
xxxx://.../?gwt.codesvr = ...#MyPlace:param = value - > XXXX://.../ gwt.codesvr = ...#
这导致历史机制加载defaultPlace,这不是所需的行为。
起初我认为GXT的stateful feature可能会导致地址更改,以便在那里维护状态信息。但是,网格配置为无状态,Provider中使用的默认StateManager为CookieProvider。
答案 0 :(得分:0)
GXT本身没有任何可以做到这一点 - 没有调用Window.Location
(除了检查Web应用程序是http还是https),也没有任何JSNI调用$ wnd.location,没有引用到com.google.gwt.user.client.History
甚至将语句继承到Activities / Places。
如果您的应用中没有一些自定义代码正在收听点击次数,那么这几乎可以让我们在应用中的某个地方减少<a href="#">
,无论是在GXT本身,还是由您自己的代码呈现。您是否在网格中呈现了a
个标记,或者菜单中的自定义小部件可能具有此标记?
您是否可以在(也是启用了活动/场所的)GXT Explorer演示中重现此问题,例如在http://www.sencha.com/examples/#ExamplePlace:basicgrid处使用菜单和其他网格交互?
(是的,你是对的,状态功能只使用cookie,如果你明确要求它 - 否则它只与任何其他使用的提供者交互。没有默认值将使用url来保持状态,尽管有没有真正的理由你不能做这样的事情。)
要对此进行调试,请使用浏览器的工具检查您点击的内容,这似乎会导致此问题 - 它是<a>
标记,href指向#
吗?如果是这样,为什么?或者,是否有任何错误调用Window.Location.assign
或replace
或History.newItem
?任何可能正在做同样事情的JSNI?