Jam*_*ard 2 gwt widget uibinder
我有一个任务是将复合小部件添加到主ui.xml文件中,但由于某种原因它不起作用.这是我的小部件代码:
public class MyClass extends Composite {
@UiTemplate("MyClass .ui.xml")
interface MyClassUiBinder extends UiBinder<Widget, MyClass > {
}
private static MyClassUiBinder uiBinder = GWT.create(MyClassUiBinder.class);
@UiField Label label;
public MyClass() {
initWidget(uiBinder.createAndBindUi(this));
} ...
Run Code Online (Sandbox Code Playgroud)
然后在我的主viewImpl.ui.xml类中:我声明了类包:
... xmlns:u="urn:com... client.view">
Run Code Online (Sandbox Code Playgroud)
然后是小部件本身:
<g:HTMLPanel ui:field="mainPanel" styleName="{style.mainPanel}">
<table align="center">
<tr>
<td align="center">
<u:MyClass/>
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
我也尝试在viewImpl类中设置一个ui:field声明,但是我在编译时抛出了一个错误:
错误]在@UiField myClass中,模板字段和所有者字段类型不匹配:com.google.gwt.dom.client.Element不能分配给com ... client.view.MyClass
当我从viewImpl和它编译的ui.xml中取出@UiField声明时,但是在加载页面时窗口小部件没有显示.
我创建了另一个复合窗口小部件类,并尝试使用按钮窗口小部件复制它.
使用firebug我看到元素已经添加到主ui.xml页面,但它也没有显示,所以我的绑定不是完全完整的.
我在这里错过了什么?
我发现了问题,GWT告诉我,我没有正确地做出我的声明,但错误并不像我希望的那样具有描述性.
在我使用的main.ui.xml文件中:
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:u="urn:com.abc.client.view">
Run Code Online (Sandbox Code Playgroud)
但是,最后一行应该在其中包含单词import:
xmlns:u="urn:import.com.abc.client.view">
Run Code Online (Sandbox Code Playgroud)
这是我找到答案的地方.
我希望这有助于某人,这花了我很多时间!
| 归档时间: |
|
| 查看次数: |
2620 次 |
| 最近记录: |