我想编辑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> {
}
因此,虽然SubEditor是SubDto的工作编辑器,但我不知道怎么说TopEditor UiField subEditor实际上是在编辑属性而不是属性本身。
到目前为止,我尝试使用TopDto中的subDto属性设置@Ignored并初始化subEditors驱动程序。但这并没有像预期的那样发挥作用。实际上问题是当我在TopEditor中调用driver.flush()时,它不会下降到调用subEditor.driver.flush()。
由于驱动程序是私有的(或受保护的),我无法显式调用SubEditor的driver.flush()并手动更改TopDto中的SubDto。所以我现在所做的就是给SubEditor提供一个公共的getSubDto()方法,它给我Dto然后手动插入它。 但据我所知,备用文档不是预期的工作流程,所以我在这里做错了。
有人可以给我一个例子,还是帮我建立一个如何做到这一点?
答案 0 :(得分:1)
您是否尝试过使用@Path注释将编辑器映射到bean属性?