我想编辑一个DTO,它由值和其他DTO组成。对于其中一些subdto,我已经有一个工作正常的Editor,它被定义为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> {
}
因此,尽管SubEditor是SubDto的有效编辑器,但我不知道怎么说TopEditor UiField子编辑器实际上是在编辑属性,而不是属性本身。
我到目前为止尝试过的是使用TopDto的subDto属性设置@Ignored并初始化subEditors驱动程序。但这不能按预期工作。实际上,问题是当我在TopEditor中调用driver.flush()时,它不会下降到调用subEditor.driver.flush()。
由于驱动程序是私有的(或受保护的),因此我无法显式调用SubEditor的driver.flush()并手动在TopDto中更改SubDto。因此,我现在要做的是为SubEditor提供一个公共的getSubDto()方法,该方法为我提供了Dto,然后手动将其插入。
但是据我从备用文档中了解到,这不是预期的工作流程,所以我在这里做错了。
有人可以为我提供一个示例,还是可以帮助我构建一个按预期方式执行此操作的示例?
最佳答案
您是否尝试过使用@Path注释将Editors映射到bean属性?