在GWT MVP中,如何在URL中保存状态,而不导航到另一个地方?

Mic*_*ski 3 gwt

我有一个简单的页面,有一个小表单和一个结果表.当用户点击"搜索"按钮时,我希望将表单内容保存在URL中,以便搜索"可收藏".所以我真正想做的是更新URL(地点)而不触发整个MVP机器(我当前的活动可以处理新的地方而无需重新启动).

我怎样才能做到这一点?我试图直接搞乱History类,但后面的按钮表现得很奇怪.看着我发现了CachingActivityMapper,但我不确定这是否是"正确"的方法.

Tho*_*yer 5

CachingActivityMapper(或类似的东西)是正确的方法.

问题是,如果ActivityMapper返回相同的实例(实际上是相同的,甚至不是比较的实例equals())作为当前活动,那么ActivityManager什么都不做(特别是不重启活动).

但请注意,它确实没有做任何事情,因此您的活动必须听取PlaceChangeEvent更改通知(或者您的ActivityMapper可以在将其返回到ActivityManager之前"通知"它;这基本上是Expenses示例所采用的方法,活动是单身的,而ActivityMappers则调用setPlace它们).