Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GWT多个html页面和导航_Java_Gwt - Fatal编程技术网

Java GWT多个html页面和导航

Java GWT多个html页面和导航,java,gwt,Java,Gwt,首先,我想说的是,我知道基于ajax的应用程序和相同页面的重用 这里的要求是,我希望有两个单独的页面,一个用于登录,另一个用于主应用程序。现在,这并不是因为我只是想要它,而是因为我在这两个页面中有非常不同的布局,我可以在页面中直接将html元素和css放在一起,然后将div放在包含动态html的地方,以便gwt填充 即使在myfaces的情况下,我也没有看到登录页面和主应用页面相同的应用程序。 无论如何,我面临的问题是,假设我有两页 带有div:div id=“Login”的Login.html

首先,我想说的是,我知道基于ajax的应用程序和相同页面的重用

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

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

带有div:div id=“Login”的Login.html

带有div:div id=“Main”的Main.html

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

私有本机void gotour(字符串url)/-{ $wnd.location.href=url; }-/;

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


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


第二,在这个场景中,我要做的是将一个空html作为应用程序的唯一html页面,除了一个用于动态内容的div之外,没有任何布局。然后我将使用2个UIBinder——一个用于主页,一个用于登录,并在url中使用哈希后缀(使用GWT的历史事件和管理,以及超链接小部件)来知道我在哪里。也许你应该在GWT关于历史和有状态应用的文档中阅读更多内容。试试看

嘿,谢谢,文档中对Ui绑定的解释似乎只代表了我问题的解决方案,而且历史机制似乎是一个不错的选择,但是因为我只有有限的页面,所以我使用了你的第一个建议RootPanel panel=RootPanel.get(“login”);如果(panel!=null){LOG.LOG(Level.INFO,“login page.”);}否则{panel=RootPanel.get(“main”);LOG.LOG(Level.INFO,“main page.”);}