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

时间:2011-09-20 09:18:31

标签: gwt

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

我该怎么做?我试图直接搞乱History类,但后面的按钮表现得很奇怪。看着我发现了CachingActivityMapper,但我不确定这是否是“正确”的方法。

1 个答案:

答案 0 :(得分:5)

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

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

但请注意,它确实没有,因此您的活动必须听取PlaceChangeEvent通知更改(或者您的ActivityMapper可以在返回之前“通知”它到ActivityManager;这基本上是Expenses示例采用的方法,其中活动是单例,ActivityMappers对它们调用setPlace