GWT多个html页面和导航

时间:2011-01-17 15:19:20

标签: java gwt

首先,我想提一下,我知道基于ajax的应用程序和同一页面的重用。

这里的要求是,我希望有两个单独的页面用于登录,而另一个用于主应用程序。现在,这不是因为我只是想要它,而是因为我在两个页面中有非常不同的布局,我很乐意将html元素和css直接放在页面中,然后将div包含在动态html中以供gwt填充

即使在myfaces的情况下,我还没有看到用于登录和主应用页面的相同页面的应用程序。 无论如何,我面临的问题是,假设我有两页

Login.html with div:div id =“login”

Main.html with div:div id =“main”

我已经在web.xml中的欢迎文件列表中声明了它们 现在我从登录页面开始,使用gwt小部件填充“登录”div,然后单击按钮 我使用以下jsni代码重定向到“/Main.html?gwt.codesvr=127.0.0.1:9997”

private native void gotoURL(String url)/ - {     $ wnd.location.href = URL;  } - /;

然后尝试填充“主”div。但我注意到的行为是应用程序再次调用入口点,它没有找到任何元素作为“登录”并给出NPE。 有没有办法做到这一点?还要摆脱“?gwt.codesvr = 127.0.0.1:9997”?

由于

1 个答案:

答案 0 :(得分:2)

首先,您不想添加?gwt.codesvr=...内容 - 它仅与托管(调试gwt)模式有关。您可以使用相对URL(例如“Main.html”)。但由于您只能有一个入口点,您需要将应用程序拆分为两个客户端模块(实际上是两个独立的应用程序),或者根据URL(无论您是登陆Login.html还是Main)在您的入口点进行调度html的)

其次,在这种情况下我要做的是有一个没有布局的空html,除了动态内容的单个div作为应用程序的唯一html页面。然后我会使用2个UiBinders - 一个用于主页面,一个用于登录,并在URL中使用哈希后缀(使用GWT的历史事件和管理,以及超链接小部件)来了解我的位置。也许您应该阅读GWT关于历史和有状态应用程序的文档中的更多内容。试试http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsHistory.html#stateful