有没有办法在 GWT UIBinder 中使用纯 HTML。
我看到的问题更多是我们必须将样式包裹在花括号中。任何详细处理 UIBinder 的链接 /article/book 都会有所帮助。
我已经在 GST 网站上看过文章
样式名称(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>
我一直在通过谷歌寻找这个问题的答案并登陆这里。
我在这里找到了适合我的解决方案: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);
您可以以接近纯 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>