我打算构建一个Web应用程序,用户可以每周输入自己的时间,并一直在努力围绕GWT中单个页面的概念,该概念根据用户操作而被数据重新粉刷。在此网站和Google上进行了很多研究之后,我找到了一个我想模仿但不知道该如何在GWT中进行的链接。尽管它们的源代码可用,但我认为它不完整。我从这个链接中得到了一些想法 - Google Web Toolkit(GWT)中的多页教程 但是再次不知道如何将其实施到工作版本中。一个小的工作样本将很棒,可以帮助我理解和入门。

谁能通过下面的链接来指导我如何实现屏幕的外观以及如何用服务器的数据重新粉刷内容?我需要将所有逻辑放在一个入门点类中吗?我想在左导航面板中使用超链接,并在右面板中显示内容。经过几个小时的研究,我似乎完全迷失了。

http://gwt.google.com/samples/showcase/showcase.html#! cwhyperlink

非常感谢你的帮助。

问候,索努。

有帮助吗?

解决方案

单个页面应用程序布局实际上很容易实现。

您要做的第一件事是使用GWTS定义一般布局 布局面板. 。对于您的布局,我建议您使用 Docklayoutpanel.

Content content = new Content();
Button switchContent = new Button(content);
Navigation navigation = new Navigation();
navigation.add(switchContent);

DockLayoutPanel pageLayout = new DockLayoutPanel(Unit.EM);
p.addWest(new HTML(navigation), 7.5);
p.add(new HTML(content));

在这里,导航面板的宽度将固定,而内容将占用其余空间。您必须传递执行内容区域开关的按钮(或其他一些小部件)的引用,将按钮添加到导航区域,依此类推。

将其放入课堂上,例如 MasterPageFactory:

public class MasterPageFactory {
    private MasterPageFactory() {}

    public static MasterPage newInstance() {

       Content content = new Content();
       Button switchContent = new Button(content);
       Navigation navigation = new Navigation();
       navigation.add(switchContent);

       DockLayoutPanel masterPage = new DockLayoutPanel(Unit.EM);
       masterPage.addWest(new HTML(navigation), 7.5);
       masterPage.add(new HTML(content));

       return masterPage;
    }
}

现在,在你的 EntryPoint 上课,致电工厂:

RootLayoutPanel.get().add(MasterPageFactory.newInstance());

这个示例应该给您一个想法。其他选项将使用诸如GUICE或命令模式之类的DI框架。

其他提示

您的问题是混合了几个概念。如果您希望用户单击看起来像链接的内容,并且在REPONS中,应用程序将请求发送到服务器,并显示一个与他们所在的页面不同的页面,并且该页面具有刚刚来自的新数据服务器,然后您需要一个完美的普通锚或提交按钮。您不需要GWT的任何特别或怪异的东西。

您引用的展示柜示例让用户单击看起来像链接的内容,看起来它会加载一个新页面,甚至可以按预期的是让后台按钮工作,但实际上并未达到服务器以获取新页面或新数据。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top