Java GWT编辑器-使用子编辑器编辑子DTO

Java GWT编辑器-使用子编辑器编辑子DTO,java,gwt,Java,Gwt,我想编辑一个DTO,它是由值和其他DTO组成的。对于其中一些子DTO,我已经有了一个定义为Composite的工作编辑器。结构如下: public class TopDto { private SubDto subDto; public SubDto getSubDto(); public void setSubDto(...); } public class TopEditor extends Composite implements Editor<TopDt

我想编辑一个DTO,它是由值和其他DTO组成的。对于其中一些子DTO,我已经有了一个定义为Composite的工作编辑器。结构如下:

public class TopDto {
    private SubDto subDto;

    public SubDto getSubDto();
    public void setSubDto(...);
}

public class TopEditor extends Composite implements Editor<TopDto> {
    @UiField
    SubEditor subEditor;
}

public class SubEditor extends Composite implements Editor<SubDto> {

}
公共类TopDto{
私人SubDto SubDto;
public SubDto getSubDto();
公共无效设置subdto(…);
}
公共类TopEditor扩展了复合实现编辑器{
@尤菲尔德
子编辑器子编辑器;
}
公共类子编辑器扩展了复合实现编辑器{
}
因此,虽然SubEditor是SubDto的工作编辑器,但我不知道如何说topreditor,UiField子编辑器实际上是在编辑属性,而不是属性本身

到目前为止,我尝试使用TopDto的subDto属性设置@Ignored并初始化SubEditor驱动程序。但这并不像预期的那样奏效。事实上,问题在于当我在TopEditor中调用driver.flush()时,它并没有向下调用subEditor.driver.flush()

由于驱动程序是私有的(或受保护的),我无法显式调用子编辑器的driver.flush(),并用它手动更改TopDto中的SubDto。因此,我现在所做的工作是为子编辑器提供一个公共getSubDto()方法,该方法为我提供Dto,然后手动插入它。 但是从我从备用文档中了解到,这不是预期的工作流程,所以我在这里做错了一些事情


有没有人可以给我举个例子,或者帮我建立一个例子,让我知道如何做到这一点?

您是否尝试过使用@Path注释将编辑器映射到bean属性?

是的,我做了,但似乎我做错了,因为我在您的回答后再次尝试了,它现在似乎起作用了……或者您可以直接调用您的UiField
subDto
subDtoEditor