我是GWT的新手。如何通过按钮点击在客户端加载不同的静态HTML页面。已阅读并且不希望进入RPC,框架,客户端软件包以及以下页面:
best way to externalize HTML in GWT apps?
如果客户端捆绑是我能得到的最接近的,我可以有一个非常简单的例子,假设我有8个HTML页面要在客户端加载,可以通过按钮点击导航吗?
根据我的理解,这些单独的页面可能由UIBinders创建 - 如果我错了,请纠正我。
我只有以下代码才能在点击时显示另一个页面,这不是我想要的方式。它也给出了403错误:
button.addClickHandler (new ClickHandler(){
@Override
public void onClick (ClickEvent event){
//Window.alert("Hello again");
String winUrl = GWT.getModuleBaseURL();
String winName = "Testing Window";
openNewWindow (winName, winUrl);
}
});
答案 0 :(得分:0)
我想这很简单:
Window.Location.assign(" MenuPage.html&#34);
答案 1 :(得分:0)
如果您不关心浏览器客户端页面的状态,那么类似:
Window.Location.replace(newUrl);
然后,您在newUrl
中指向的html页面可能会加载或不加载与当前页面相同的java脚本。
如果您确实关心保持浏览器客户端页面的状态,并且只是想避免在初始加载时加载静态页面(默认情况下所有页面都会立即加载),那么code splitting就是您的朋友。原则是围绕定义代码拆分的异步调用包装显示新页面的代码,如:
GWT.runAsync(new RunAsyncCallback()
{
@Override
public void onFailure(Throwable reason)
{
Window.alert("Error in fetching the split javascript for page ...");
}
@Override
public void onSuccess()
{
// Code to setup and show your new static page instead of the current page.
// This code will be in a javascript file that won't be loaded at initial page load.
// You must make sure though that the below code does not use/include common code.
RootPanel.get().clear();
RootPanel.get().add(newWidget);
}
});