我的GWT模块UI只是单个按钮(,如AddThis / ShareThis Sharing Button ),所有其他内容都在JS Popup面板中完成。 Id 被指定为全局JS变量(即myConfig.id = 22 )并使用JSNI方法在
注意:还有另一种方式传递参数,即通过设置
<div id='gwtRootPanel' alt='6323'> </div>
<script type="text/javascript" language="javascript" src="com.test.gwt.Common/com.test.gwt.Common.nocache.js"></script>
&安培;在GWT代码中
RootPanel rootPanel = RootPanel.get("gwtRootPanel");
System.out.println("Passed Value " + DOM.getElementAttribute(rootPanel.getElement(), "alt"));
这两种方式都适用于页面中只有1个按钮,现在我没有看到任何此选项可用于在一个HTML中添加多个按钮(像博客帖子列表中的每个博客的相同共享按钮)网页..
如果使用第一种方式,
如何为同一GWT编译文件获取不同的值?
如果使用第二种方式,
不能使用相同的&lt; div id ='gwtRootPanel'&gt; ...
任何提示或解决方案?
干杯,
Nachiket
答案 0 :(得分:1)
在同一页面上使用多个入口点可能不是一个好主意。而是使用单个入口点并在页面上放置您希望它进行交互的标记。
因此,如果你想在某些div中粘贴一个GWT按钮小部件,你可以像这样实现你的html:
<div id="marker1"></div>
<!-- more stuff -->
<div id="marker2"></div>
<!-- etc. -->
然后,单个GWT应用程序的入口点将从这样的循环中插入自己的按钮:
public void onModuleLoad() {
int i = 1;
do {
String id = "marker" + i;
RootPanel rp = RootPanel.get(id);
if (rp == null) {
break;
}
rp.add(new MyWidget(getContextData(id)));
i++;
} while (true);
}
native String getContextData(String id) /*-{
return $wnd.myConfig[id];
}-*/;
所以这个例子将遍历html寻找匹配的id,然后在那里插入小部件作为子元素。此外,它使用id作为上下文来获取页面中的更多数据。