誰かがこの問題で私を助けてくれるなら、
GWT でページを変更するときにアドレス バーの内容を変更するにはどうすればよいですか? (例: Aboutus www.mysite.com/aboutus)
また、ユーザーがアドレス バー (www.mysite.com/aboutus) に入力すると、GWT アプリケーションはそれを Aboutus ページに転送しますか?
ありがとう
ウィジェットを使用して、次のようにナビゲートする必要があります。
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();
}
});
}
}
で試すこともできます
newPageButton.addClickHandler(new ClickHandler() {
public void onClick(final ClickEvent event) {
History.newItem("customer");
}
});