我遇到一个问题,我无法找到一个优雅的解决方案。我想使用NestedTree
(或类似的东西)作为我页面的简单菜单。每个节点都链接到Page
,显示由ID标识的内容。为了获得不错的网址和简单的书签,我想使用BookmarkablePageLinks
链接到这些网页。
但是这样做每次都会创建一个全新的Page
,从而破坏并重新创建树,重置它的状态。因此,对于每个链接,单击完整的树折叠,用户必须再次打开它以选择另一个链接。
我找不到满足这些标准的解决方案:
如果在调用带书签的URL时未恢复状态,那就没关系了。
使用Wicket 1.4,我可以使用pageMapName
在会话中维护PageMaps
的地图及其菜单状态。但是Wicket 1.5(我现在使用6.8)已经大大改变了这个功能。
我非常感谢有关如何执行此操作的解决方案或提示。
答案 0 :(得分:1)
但是这样做每次都会创建一个全新的页面 摧毁并重新创建树,重置它的状态。所以每个 链接单击完整的树折叠,用户必须打开它 再次选择另一个链接。
树崩溃,因为它的模型正在页面加载时重新创建。您可能将树的模型保留为页面上的成员变量。要解决此问题,您应该将树的模型存储在会话对象中。这样,您可以在多个页面中保留状态。
答案 1 :(得分:0)
您可以在Wicket 1.5.x和6.x中管理自己的pageMaps。您只需要一点Javascript,请参阅AjaxNewWindowNotifyingBehavior获取灵感。
然后,您可以在页面地图特定的键下保持树的扩展状态。