如何更改GWT应用程序中的URL?

时间:2013-05-19 06:53:18

标签: java url gwt

我希望有人能在这个问题上帮助我,

当我在GWT中更改页面时,如何更改地址栏内容? (例如:关于Aboutus www.mysite.com/aboutus)

如果用户在地址栏中输入(www.mysite.com/aboutus),GWT应用程序会将其转发到Aboutus页面?

由于

5 个答案:

答案 0 :(得分:1)

您可以使用activities and places.这是构建您的网络应用的一种方式。应用程序将按场所,视图和活动进行组织。视图仅包含构建界面的代码,活动包含View实际执行的操作。每个地点/活动/视图对应一个URL。对于某些应用程序,这是一种简单方便的组织方式。

答案 1 :(得分:0)

地址栏是根据您的网页设置的,如果您有,请说:welcome.html您必须将此脚本放入其中:

<script type="text/javascript" language="javascript" src="module/welcome.nocache.js"></script>

src attr是指模块中的入口类(我在这里的模块是指module.gwt.xml文件)

因此,此脚本将您的html页面与GWT Java EntryClass中编写的逻辑连接起来

代表aboutus上的“www.mysite.com/aboutus”的模块,因此如果你有一个与此模块相关的页面,你会发现它:

www.mysite.com/aboutus/this_is_html_related_to_aboutus_module.html

所以一对一:一页到一个模块

或多对一:一个页面中的多div标签和更多逻辑(if-else)指定任何一段代码将匹配合适的div

答案 2 :(得分:0)

您应该使用您的小部件进行如下导航:

Anchor nameLink = new Anchor();
nameLink.setText(rec.get("userSeq") + " / " + rec.get("userName"));
nameLink.getElement().setAttribute("style", "padding: 5px;");
String url = GWT.getHostPageBaseURL() + GWT.getModuleName() + ".html";
if (GWT.getHostPageBaseURL().contains("localhost") || GWT.getHostPageBaseURL().contains("127.0.0.1")) {
    url = url + "?gwt.codesvr=127.0.0.1:9997";
}
nameLink.getElement().setAttribute("style", "padding: 10px;");
nameLink.getElement().setAttribute("href", url + "#customer");

您的控制器或演示者类应该实现ValueChangeHandler<String>,例如

public final void onValueChange(final ValueChangeEvent<String> event) {
String token = event.getValue();

if (token != null) {
    String[] tokens = History.getToken().split(":");
    final String token1 = tokens[0];
    final String token2 = tokens.length > 1 ? tokens[1] : "";

    if (token1.equals("customer")) {

        GWT.runAsync(new RunAsyncCallback() {
            public void onFailure(final Throwable caught) {
            }

            public void onSuccess() {
                CustomerAuctionView view = CustomerAuctionView.getInstance(service);
                CustomerAuctionPresenter presenter = CustomerAuctionPresenter.getInstance(service, eventBus, view);
                presenter.run();
            }
        });
    }
}

答案 3 :(得分:0)

您也可以尝试使用

newPageButton.addClickHandler(new ClickHandler() {
    public void onClick(final ClickEvent event) {
        History.newItem("customer");
    }
});

答案 4 :(得分:0)

通过JSNI,您可以找到URL

public static native String getURL() 
  /*-{

var x = "URL: " + location.href;
alert(x);


  }-*/;