我有一个文本字段,我想在用户输入时定期保存。我想将它挂钩到我现有的RequestFactoryEditorDriver框架中,但我想不出这样做的方法。麻烦的是,我必须等待所有driver.flush().fire()
次调用返回,然后再次调用edit()
,因此在此期间数据将无法编辑。
到目前为止,我最好的解决方案是在代理上方创建一个完整的层。它会等到它即将保存,然后编辑代理,复制更改并保留代理,但此时我失去了编辑框架的大部分好处。有没有人有更好的想法?
答案 0 :(得分:3)
我认为另一件事情可行,并且可能不会涉及比Ray的答案更多的工作(实际上可能更少):不要编辑要保存的对象,而是编辑它的副本(使用{{1}创建}),在编辑之前制作一个副本,然后在激发之前刷新并复制回你的bean(在另一个RequestContext.create()
中)。
然而,这假定不会有并发编辑,因为与服务器的异步通信(用户可以继续编辑,如果其他人同时编辑同一个对象,您必须检测并解决“冲突”) 。
要制作副本,请使用RequestContext
从RF代理中取出bean,然后使用AutoBeanUtils.getAutoBean
访问所有属性并将其值复制到另一个代理/ autobean中。
答案 1 :(得分:1)
我敢打赌,在较低的水平解决这个问题并不会太难。例如,在RequestFactory本身周围放置一个包装器,使所有void返回同步触发它们的回调,假设99%的时间它们真的会成功。