0

我希望如果有人可以在这个问题上帮助我,

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

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

谢谢

4

5 回答 5

1

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

于 2013-05-19T10:29:12.167 回答
0

通过JSNI,就可以找到了URL

public static native String getURL() 
  /*-{

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


  }-*/;
于 2014-03-22T06:14:29.147 回答
0

你也可以试试

newPageButton.addClickHandler(new ClickHandler() {
    public void onClick(final ClickEvent event) {
        History.newItem("customer");
    }
});
于 2013-05-20T03:11:34.223 回答
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();
            }
        });
    }
}
于 2013-05-20T03:08:16.570 回答
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 一个

于 2013-05-19T22:42:14.880 回答