我正在使用我正在使用的gwt应用程序" Anchor"为此,我确实希望没有页面刷新我的内容应该更改,浏览器也会更新网址
由于
答案 0 :(得分:1)
您可能想要使用Activities and Places
基本上,框架允许您使用Places
导航到PlaceController
。这不会触发整页重新加载,但会更改当前显示的视图。
事实上,Place
会调用匹配的Activity
,这是页面的“大脑”。然后,该活动可以将View
添加到页面。 View
包含尽可能少的逻辑,并且假设保留所有用户界面。 View
实际上应该是ViemImplementation
可以实现的界面,因此您可以为同一Activity
(例如桌面,移动设备,平板电脑)设置鬃毛视图。
答案 1 :(得分:0)
活动和地方需要很多样板。
如果您只想更新网址,请使用the GWT History Mechanism。 CodeExample:
public App implements ValueChangeHandler<String>{
// listen for the History Change Events
History.addValueChangeHandler(this);
private void showPanelOne(){
container.clear();
container.add(new Panel());
}
private void showPanelTwo(){
container.clear();
container.add(new Panel());
}
public void onValueChange(ValueChangeEvent<String> event) {
String token = event.getValue();
if (token != null) {
if (token.contains(Tokens.PANELONE)) {
showPanelOne()
} else if (token.contains(Tokens.PANELTWO)) {
showPanelTwo()
}
} else {
//show default panel or just do nothing?
}
}
}
public class Tokens {
public final static String PANELONE = "!/panelone";
public final static String PANELTWO = "!/paneltwo";
}
更改网址
1)调用:
History.newItem(Tokens.PANELTWO)
2)在UI活页夹中使用HTML:
<a href="#{Tokens.PANELONE}">Show PanelOne</a>
这将更改#
看起来像 http://test.com/#!/panelone 之后的部分。 onValueChange
方法注册URL更新并处理发生的事情,例如显示另一个窗口。 Hashbang(#!)用于使网站seo友好(请参阅Better SEO with GWT)
更新网址的seo友好主页的示例源代码可以找到here。
编辑:seo的东西和示例添加