有没有办法在GWT UIBinder中使用纯HTML。
我看到的问题更多的是我们必须用花括号包裹样式。任何链接/文章/书籍处理UIBinder都会有所帮助。
我已经在GST网站上看过这些文章
答案 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);