我有一个扩展,它接受表单中的数据并使用它来后处理我调用它的Run。这很好。
问题是,我想通过返回到该屏幕并重新显示已输入的数据和错误消息来处理错误......我需要这对于同时用户至少有点强大,所以在扩展代码中缓存数据的明显方法不能胜任。
我想出的最好的事情就是发明一个" RunLocal" - 由我们正在处理的运行索引的缓存。只要有两个人没有尝试对同一个Run进行后期处理,那就可以完成这项任务,但这只是一个适度可怕的克拉格。
更好的是某种短期会话变量,但我没有发现扩展的好方法是从请求获取会话ID或执行无状态例程传递所有数据交易..当我显示错误屏幕时,Stapler.getCurrentRequest将引用那个,而不是之前传递参数的那个。
感觉就像这里有一个很好的解决方案,但是我正在盯着它...建议?
我怀疑我是第一个尝试处理这种情况的人。建议?