2011-05-12 113 views
6

我有一个多页应用程序,需要手动从一个页面切换到另一个页面。它可以在GWT中完成,因为它是针对单页面应用程序的。我正在从Google代码和在线论坛中学习,但找不到任何具有多个未通过共同入口点链接的多页面的应用程序。有任何想法吗?gwt多页应用程序

回答

9

GWT通过URL fragment identifier(FI),即http://www.yourhost.vom/main#pagename支持应用程序内的“页面”,其中“pagename”是表示应用程序中“页面”的片段标识符。

这个“页面”(请注意,浏览器从不真正重新加载页面,所以GWT应用程序保持不变),具有完整的历史记录支持并且可加入书签。

注意:贯穿GWT docs片段标识符有时被称为地方标记或历史标记。

  1. 通过添加iframe来你的主页启用history support

    <iframe src="javascript:''" 
         id="__gwt_historyFrame" 
         style="width:0;height:0;border:0"> 
    </iframe> 
    
  2. 注册一个ValueChangeHandler通知FI(页)更改时:History.addValueChangeHandler(..)。在这个处理程序中,您放置了一个显示新页面的逻辑。

  3. 转到通过调用History.newItem("newpage")(没有#)的特定页面

  4. 可以甚至通过“参数”页面,通过将片段标识符成子部分:例如“#编辑/ USER4”。只需解析此FI,调用显示编辑页面的代码并将“user4”传递给它。您可以使用任何字符将FI分成“页面”部分和“参数”部分(我在此使用“/”)。在现实生活中看到这一点:在Gmail中打开邮件并查看URL。

+0

该多页应用程序的任何示例。你将如何在gwt中实现一个普通的或者只制作静态页面而不需要参数解析 – user477469 2011-05-12 22:25:34

+0

GWT应用中没有静态页面。您可以在服务器上创建一个,但这意味着要离开GWT应用程序。一个普通的锚点是这样完成的:',你在代码中处理“page2”并显示你想要的东西。 – 2011-05-13 06:44:29