【问题标题】:GWT Editor - edit subdto with subeditorGWT Editor - 使用 subeditor 编辑 subdto
【发布时间】:2014-01-10 14:35:41
【问题描述】:

我想编辑由值和其他 DTO 组成的 DTO。对于其中一些 subdtos,我已经有一个工作编辑器,它被定义为 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 实际上是在编辑属性,而不是属性本身。

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

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

有人可以为我提供一个示例或帮助我构建一个如何按预期执行此操作的示例吗?

【问题讨论】:

    标签: java gwt


    【解决方案1】:

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

    【讨论】:

    • 是的,我做到了,似乎我做错了,因为我在你回答后又试了一次,现在似乎可以工作了......
    • ……或者你可以直接打电话给你的 UiField subDtosubDtoEditor
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多