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
Gwt UiBinder如何:在ui.xml中创建可恢复组件_Gwt - Fatal编程技术网

Gwt UiBinder如何:在ui.xml中创建可恢复组件

Gwt UiBinder如何:在ui.xml中创建可恢复组件,gwt,Gwt,我有一个带有@UiConstrutor注释的组件: @UiConstructor public SearchWidget(Widget filterWidget, Widget resultWidget) { ... } 在ui.xml中,我必须编写如下内容: <SearchWidget filterWidget="" resultWidget=""/> <with field="filterWidget"> <Widget> ... &l

我有一个带有
@UiConstrutor
注释的组件:

@UiConstructor
public SearchWidget(Widget filterWidget, Widget resultWidget) {
  ...
}
在ui.xml中,我必须编写如下内容:

<SearchWidget filterWidget="" resultWidget=""/>
<with field="filterWidget">
  <Widget>
  ...
  </Widget>
</with>

<With field="resultWidget">
  <Widget>
  ...
  </Widget>
</with>

问题是,我希望能够在ui.xml中构建一个复杂的小部件,并在
标记中使用,比如:

<SearchWidget filterWidget="" resultWidget=""/>
<with field="filterWidget">
  <Widget>
  ...
  </Widget>
</with>

<With field="resultWidget">
  <Widget>
  ...
  </Widget>
</with>

...
...
然后像这样使用它:

<SearchWidget filterWidget="{filterWidget}" resultWidget="{resultWidget}"/>


它们是现有的接近语法吗?

您可以尝试使用
@UiChild
注释(如果您可以用相应的方法替换构造函数依赖项)。请举例说明

两种新方法:

@UiChild SearchWidget#addFilterWidget(Widget w)
@UiChild SearchWidget#addResultWidget(Widget w)
UiBinder(您需要为自定义小部件声明新的
p
命名空间):


...
...

为什么要将小部件包装两次?为什么不能呢?@Zerkz,
在这种情况下不是小部件。它是对
SearchWidget#addFilterWidget(Widget w)
方法的调用。正如您所见,您需要传递一个参数,在本例中,它是
。检查我的答案中提到的javadoc,您会发现更详细的示例。