我已经和GWT合作了一段时间,我找不到将它与预先存在的网站集成的方法。我的页面内容已经使用jsp为我生成,例如:
<div id='A'></div>
<div id='B'></div>
etc.
虽然我没办法做这样的事情:
public void onModuleLoad() {
SimplePanel spA = new SimplePanel(
Document.getElementById("A"));
spA.add(new Label("hello"));
SimplePanel spB = new SimplePanel(
Document.getElementById("B"));
spB.setWidth("200px");
etc ..
}
似乎没有办法只包装一个预先存在的元素。这是真的,还是我想念怎么做?我需要能够包装这样的一堆元素,以便稍后操作它们。我看到TextBox,Button,其他几个类都有wrap()方法,但是对于元素来说却没有类似的东西,
由于
答案 0 :(得分:4)
有一种方法可以包装现有的DOM元素,例如Label
的{{3}}方法。例如:
Label label = Label.wrap(DOM.getElementById("A"));
label.setText("Foo!");
其他GWT类也可以使用其构造函数包装DOM元素,如Button
和CheckBox
。
答案 1 :(得分:1)
使用HTMLPanel:
class MyPanel extends HTMLPanel {
private SimplePanel a = new SimplePanel();
private SimplePanel b = new SimplePanel();
public MyPanel() {
super("<div id="a"></div><div id="b"></div>);
addAndReplaceElement(a, "a");
addAndReplaceElement(b, "b");
}
}