我打算构建一个Web应用程序,用户可以每周输入他们的时间,并且一直在努力探索GWT中单个页面的概念,该页面根据用户操作重新绘制数据。经过对这个网站和谷歌的大量研究后,我找到了一个我想模仿的链接,但不知道如何在GWT中进行。虽然他们的源代码可用,但我认为它不完整和完整。我从这个链接中得到了一些想法 - Multiple pages tutorial in Google Web Toolkit (GWT)但又不知道如何将其实现到工作版本中。一个小的工作样本将很好地帮助我理解和开始。
有没有人可以通过下面的链接指导我如何实现屏幕的外观和感觉,以及如何使用来自服务器的数据重新绘制内容?我需要将所有逻辑放在一个EntryPoint类中吗?我想在左侧导航面板中显示超链接,并在右侧面板中显示内容。经过几个小时的研究,我似乎完全迷失了。
http://gwt.google.com/samples/Showcase/Showcase.html#!CwHyperlink
非常感谢你的帮助。
此致 SONU。
答案 0 :(得分:0)
单页应用程序布局实际上很容易实现。
您要做的第一件事是使用GWT layout panels定义一般布局。对于您的布局,我建议使用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或Command模式这样的DI框架。
答案 1 :(得分:0)
你的问题是混淆了几个概念。如果您希望用户单击看起来像链接的内容,并且在响应中,应用程序会向服务器发送请求并显示与其所在页面不同的页面,并且该页面包含刚刚来自的页面服务器,然后你想要一个完全正常的锚或表单提交按钮。 GWT不需要任何特殊或奇怪的东西。
您引用的展示示例允许用户单击看起来像链接的内容,看起来它加载了一个新页面,甚至让后退按钮按预期工作,但实际上并未点击服务器以获取新页面或新数据。