GWT多个html页面和导航

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

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

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

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

带有div的main.html: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”?

谢谢

首先,你不想添加?gwt.codesvr=... stuff – 它只与托管(调试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