【问题标题】:How to change URL within GWT app如何在 GWT 应用程序中更改 URL
【发布时间】:2011-10-28 18:27:22
【问题描述】:

我正在处理一个 gwt 多页项目,我使用这些代码在 html 页面之间切换,对于这种情况,从 index.html 切换到 signup.html 页面:

public static native void fireChangePage(String url)/*-{
        $wnd.location.href = url;
}-*/;

public void goToSignUpPage(boolean isDeployed) {
  String url = (isDeployed == true ? "signup.html" : "signup.html?gwt.codesvr=127.0.0.1:9997");
        fireChangePage(url);
}

从 index.html 的入口点调用 fireChangePage 时出现错误 404。 手动更改浏览器上的网址说: index.html?gwt.codesvr=127.0.0.1:9997 到 signup.html?gwt.codesvr=127.0.0.1:9997 有效,所以我可以说问题出在本机功能上fireChangePage

本机功能可能有什么问题?或者有比这更好的方法吗?

【问题讨论】:

    标签: gwt


    【解决方案1】:

    如果是 GWT 项目,您应该在位置之间切换(使用 PlaceController),而不是在 HTML 页面之间切换。无论如何,如果您必须这样做,我建议您改用com.google.gwt.user.client.Window.Location 类(它由框架提供并且工作正常)。

    【讨论】:

    • 我确实使用了 Window.Location.replace(url) 但它也返回错误 404。实际上,对我有用的是用户 HTML 对象并将链接与 可行,但是使用这种方法会创建一个“超链接”(蓝色),这在我的 gwt 应用程序中看起来并不好。
    • 所以当位置改变时(通过Window.Location),并且您在浏览器中看到404错误代码,当您点击“输入”(要求浏览器重试)时,是否也会出现404错误? (您说过,如果您手动指定它,您可以看到正确的页面 - 所以当您按 Enter 时,它与您手动指定时相同)。我很确定这与您的网址有关 - 我已经多次使用 Window.Location 并且每一个都运行良好。
    【解决方案2】:

    尝试在文档路径中添加斜线,即/signup.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      • 2017-11-19
      • 2014-05-21
      • 1970-01-01
      • 2021-05-20
      • 1970-01-01
      • 2013-02-09
      相关资源
      最近更新 更多