0

我有一个问题,我找不到一个优雅的解决方案。我想使用NestedTree(或类似的)作为我页面的简单菜单。每个节点都链接到一个Page显示由 ID 标识的内容的节点。为了获得漂亮的 URL 和简单的书签,我想BookmarkablePageLinks用来链接到这些页面。

Page但是这样做每次都会创建一个全新的,从而破坏和重新创建树,重置它的状态。因此,每单击一个链接,整个树就会崩溃,用户必须再次打开它才能选择另一个链接。我找不到满足以下标准的解决方案:

  • 每个选项卡/窗口保留一个单独的状态
  • 打开一个新选项卡会从打开它的选项卡复制状态,但随后是独立的
  • 易于使用,这意味着您不必为每个链接手动设置和恢复状态

如果调用书签 URL 时状态没有恢复,那也可以。

使用 Wicket 1.4,我可以使用pageMapName来维护PageMaps会话中的地图及其菜单状态。但是 Wicket 1.5(我现在使用的是 6.8)大大改变了该功能。

我将非常感谢有关如何执行此操作的解决方案或提示。

4

2 回答 2

1

但是这样做每次都会创建一个全新的页面,从而破坏并重新创建树,重置它的状态。因此,每单击一个链接,整个树就会崩溃,用户必须再次打开它才能选择另一个链接。

树崩溃了,因为它的模型是在页面加载时重新创建的。您可能将树的模型作为成员变量保留在页面上。要解决此问题,您应该将树的模型存储在会话对象中。这样,您可以跨多个页面保留状态。

于 2013-08-25T09:38:49.053 回答
0

您可以在 Wicket 1.5.x 和 6.x 中管理自己的 pageMap。您只需要一点 Javascript,请参阅 AjaxNewWindowNotifyingBehavior 以获得灵感。

然后,您可以在 pageMap 特定键下的会话中保持树的展开状态。

于 2013-08-25T18:56:05.210 回答