Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gwt 如何使用uiBinder将复合小部件嵌套到主ui.xml文件中?_Gwt_Widget_Uibinder - Fatal编程技术网

Gwt 如何使用uiBinder将复合小部件嵌套到主ui.xml文件中?

Gwt 如何使用uiBinder将复合小部件嵌套到主ui.xml文件中?,gwt,widget,uibinder,Gwt,Widget,Uibinder,我的任务是在主ui.xml文件中添加一个复合小部件,但由于某些原因它无法工作。以下是我的小部件代码: public class MyClass extends Composite { @UiTemplate("MyClass .ui.xml") interface MyClassUiBinder extends UiBinder<Widget, MyClass > { } private static MyClassUiBinder 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));
    } ...
然后是小部件本身:

<g:HTMLPanel ui:field="mainPanel" styleName="{style.mainPanel}">
<table align="center">
<tr>
    <td align="center">
        <u:MyClass/>
    </td>
</tr>

我还尝试在viewImpl类中设置ui:field声明,但在编译时抛出了一个错误:

@UiField myClass中的错误]模板字段和所有者字段类型不匹配:com.google.gwt.dom.client.Element不可分配给com。。。client.view.MyClass

当我从vieimpl和它编译的ui.xml中取出@UiField声明时,但是加载页面时小部件没有显示

我创建了另一个复合小部件类,并试图用一个按钮小部件来复制它

使用firebug,我看到元素已添加到主ui.xml页面,但它也没有显示,因此我的绑定并不完全完整


我在这里遗漏了什么?

您没有在插入
MyClass
小部件的位置显示更多的UI活页夹标记,但是如果您的小部件包含一些原始HTML,则需要将所有这些HTML都包含在一个HTMLPanel中。

我发现了问题,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">
这就是我找到那本书的地方

我希望这有助于某人,这花费了我很多时间

<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">
xmlns:u="urn:import.com.abc.client.view">