如何使用GWT 2.4在服务器端动态创建UI

时间:2012-01-25 17:41:32

标签: java gwt

我正在尝试使用Google Web Toolkit v2.4创建用户界面。由于各种原因,我需要在运行时指定服务器上接口的内容。我不仅仅意味着按钮需要动态标签等,而是需要在运行时创建整个UI。

我的大部分用户界面都可以指定为直接的HTML。但我也想要像Scrollpane这样的小部件。当然,我需要以某种方式将动作附加到按钮之类的东西上。

我尝试通过创建com.google.gwt.user.client.ui.Button的实例来创建UI服务器端,并通过RPC调用将它们返回给客户端。但是Button类不可序列化。 (包名也告诉我这是一个应该只在客户端上存在的对象。)

我考虑过动态生成UiBinder模板。但是,似乎需要编译UI活页夹模板。

我现在正在考虑使用占位符XML元素向客户端发送HTML,其中GWT小部件应该去。在客户端上,我将使用DOM方法来查找和替换它们与GWT小部件。但是在这一点上我觉得我已经误入歧途了。

感觉应该有一种直接的方式来做到这一点,但它正在逃避我。

建议?

4 个答案:

答案 0 :(得分:2)

GWT没有内置支持这样的东西(因为它完全没有gwt点)。 所以你有两个选择,

构建自己的框架,这样你就可以从服务器向客户端发送一些布局页面数据,客户端将解析它并创建ui

你可以使用其他一些框架,例如Vaadin基本上可以做你想要的,或者是一些JavaScript UI Framework + Node.js的组合,你可以轻松地在客户端和服务器之间共享代码。

答案 1 :(得分:1)

你应该看看Vaadin。服务器端控制生成客户端GWT。

答案 2 :(得分:0)

我认为您正在寻找XForms。 XForms有几种实现(http://www.w3.org/MarkUp/Forms/wiki/XForms_Implementations),其中一些在服务器端工作,其中一些在浏览器中工作。某些第二种类型可以用作浏览器插件,flash或java脚本,但我最喜欢的是开发用于GWT的EMC Formula XForms Engine(https://community.emc.com/docs/DOC-4345)。

如果您需要一些示例,请点击此处:http://svn.yuppy.pl/projects/trunk/sample-gwt-xforms/

答案 3 :(得分:0)

您可以参考链接http://code.google.com/p/acris/wiki/DynamicUiBinder for dynamicUiBinder