【问题标题】:RequestFactoryEditorDriver#getPaths() usage?RequestFactoryEditorDriver#getPaths() 用法?
【发布时间】:2012-06-29 17:35:23
【问题描述】:

HI:以下代码来自 RequestFactoryEditorDriver:

 /**
   * Returns a new array containing the request paths.
   * 
   * @return an array of Strings
   */
  String[] getPaths();

我的问题是,

  1. 什么时候在什么地方使用这个方法,没有地方设置RequestFactoryEditorDriver的路径,是创建驱动时生成的路径吗?如果是,“生成路径”的规则是什么?
  2. 我认为客户端应该自己提供路径,例如:

    factory.find(proxyId).with(myPaths).fire(...)

从 RequestFactoryEditorDriver#getPaths() 除外,如果没有指定从 1 获取的路径。

【问题讨论】:

    标签: gwt requestfactory gwt-editors


    【解决方案1】:

    路径是从编辑器层次结构中计算出来的。该列表基本上包括所有正在编辑的不是简单值的属性(基元、字符串、日期等)

    如果您有以下情况:

    TextBox name;
    DateBox dateOfBirth;
    
    @Path("manager.name")
    Label managerName;
    
    AddressEditor address;
    

    getPaths 将返回 "manager", "address"

    这个想法是您可以将值直接传递给with(),然后您将检索编辑器所需的所有对象。如果您在层次结构中添加或删除子编辑器,则无需更改请求代码,getPaths 值将有所不同,并包含编辑器所需的内容。

    【讨论】:

    • 您好 Thomas,感谢您的回复,当我在编辑后立即刷新驱动程序时,我总是发现驱动程序已更改(这不应该是因为我没有在 UI 中修改任何内容),如何跟踪这样的问题? editorDriver.edit(getProxy(), createSaveRequest(getProxy())); editorDriver.flush();
    • 可以是code.google.com/p/google-web-toolkit/issues/detail?id=5952 吗?或者code.google.com/p/google-web-toolkit/issues/detail?id=6713? (仍然想知道它与getPaths 有什么关系;-))
    • 您好 Thomas:您的链接很有帮助,但是我仍然不确定是什么字段导致了问题,是在 flush() 之前和之后使用下面的代码转储代理,它们完全相同! AutoBeanCodex.encode(AutoBeanUtils.getAutoBean(entityProxy)).getPayload();我该如何调试这个问题?使用 eclipse 似乎无法调试到 diff() 方法。
    • 比较 RequestContext#isChanged()EditorDriver#isDirty(),更新到 2.5.0-rc1 看看是否仍然存在问题(仅修复了上述 2 个问题中的一个),看看发生了什么问题当您fire 请求上下文时,或使用ProxyStore 而不是AutoBeanCodex。 (但你应该可以进入diff
    • 通过使用EditorDriver#isDirty() 而不是RequestContext#isChanged(),我的应用程序到目前为止似乎运行良好。我还使用了一个标志来指示代理是新创建的还是重新进入的。非常感谢你的帮助。这几天这个问题真的很困扰我。
    猜你喜欢
    • 1970-01-01
    • 2022-06-23
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多