我有一个广泛使用编辑框架的应用程序。现在我正处于我想要添加新功能的位置:如果用户编辑实体,我想记录所做的更改并将它们存储在单独的数据存储区实体中。这需要知道字段是否已更改,字段名称以及更改的值。
这是我要实施的内容:
processChanges(List<String> paths)
,然后创建并存储“field foo”已更改为“bar”的记录,依此类推。我使用GWTP并且当前使用RPC命令模式。我已经阅读了一些关于RequestFactory的内容,据我了解,其主要好处之一是它只将已更改的字段“deltas”发送回服务器以最小化有效负载,所以我想知道是否使用RequestFactory更适合我的应用程序?
道歉 - 我一直在阅读GWT文档和Javadocs的编辑框架和RequestFactory,但我仍然很困惑。 RequestFactoryEditorDriver.getPaths()似乎可能是我需要的,但任何建议或指示都非常感激。
我可能会注意到客户端的变化,但这似乎是一个坏主意。
答案 0 :(得分:2)
我相信你可以使用EditorVisitor
来做到这一点,类似于编辑框架内部使用的DirtCollector
访问者(请查看PathCollector
如何收集路径访问者)。
我首先访问层次结构,以便在调用edit()
之后收集初始值(这已在DirtCollector
内部完成,但是无法访问它结果,它只收集叶值
然后你可以打电话给flush()
,看看是否有错误,并可能验证你的对象,看看是否一切正常。然后再次访问层次结构以收集更改(与先前收集的初始值相对应),以便将它们发送到服务器。