GWT UI Binder使用纯HTML

时间:2010-09-03 09:10:38

标签: gwt uibinder

有没有办法在GWT UIBinder中使用纯HTML。

我看到的问题更多的是我们必须用花括号包裹样式。任何链接/文章/书籍处理UIBinder都会有所帮助。

我已经在GST网站上看过这些文章

3 个答案:

答案 0 :(得分:2)

样式名称(CSS类名称)必须放在花括号中,例如<div class="{style.example}">...</div>,当GWT对名称进行模糊处理时。当您使用CssResource时,GWT会执行此操作。当您在<ui:style>文件的.ui.xml块中声明它时,情况也是如此:

<ui:UiBinder ...>
  <ui:style>
    .example {
      ...
    }
  </ui:style>

  <div class="{style.example}">
     ...
  </div>
</ui:UiBinder>

相反,当您在纯CSS文件中声明CSS类时(您直接从HTML主机页面引用它),那么您不要将名称放在花括号中。在这种情况下,你只需使用它

<ui:UiBinder ...>
  <div class="example">...</div>
</ui:UiBinder>

答案 1 :(得分:0)

您可以这样使用它,它接近纯HTML:

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
  ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat'
  ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator"
  ui:generateLocales="default"
  xmlns:g='urn:import:com.google.gwt.user.client.ui'>

  <ui:style>

    ... CSS ...

  </ui:style>

  <g:HTMLPanel>

    ... HTML and GWT controls ...

  </g:HTMLPanel>

</ui:UiBinder>

答案 2 :(得分:0)

我一直在寻找谷歌这个问题的答案,并在这里登陆 我找到了适合我的解决方案:
http://blog.sortedset.com/googles-app-engine-java/gwt-uibinder-helloworld-with-html/


要点:

使用

interface MyUiBinder extends UiBinder<Element, MobileUI>

而不是

interface MyUiBinder extends UiBinder<Widget, MobileUI>


使用

setElement(uiBinder.createAndBindUi(this));

而不是

initWidget(uiBinder.createAndBindUi(this));


使用

RootPanel.getBodyElement().appendChild(myUiBinder.getElement());

而不是

RootPanel.get().add(myUiBinder);