3

使用 .ToolManager我可以通过SiteService. 但我想获取用户当前正在访问的当前 SitePage 属性。

考虑到一旦我有了工具,我就找不到任何覆盖其属性的方法,这个疑问可以扩展到当前的工具属性。

Properties我可以通过got with获取工具属性并且我正在使用它(它是通过实例)sitepage.getTool(TOOLID).getConfig()。为了保存属性,我使用该ToolConfiguration方法并在使用该方法编辑后保存数据ToolConfiguration.save()。这是正确的方法吗?

4

1 回答 1

4

您可以通过获取当前的工具会话然后从那里向后工作来做到这一点。这是一种应该这样做的方法。

public SitePage findCurrentPage() {
  SitePage sp = null;
  ToolSession ts = SessionManager.getCurrentToolSession();
  if (ts != null) {
    ToolConfiguration tool = SiteService.findTool(ts.getPlacementId());
    if (tool != null) {
      String sitePageId = tool.getPageId();
      sp = s.getPage(sitePageId);
    }
  }
  return sp;
}

或者,您可以使用当前的工具来实现它,但我认为这种方法更难。

String toolId = toolManager.getCurrentTool().getId();
String context = toolManager.getCurrentPlacement().getContext();
Site s = siteService.getSite( context );
ToolConfiguration tc = s.getTool(toolId);
String sitePageId = tc.getPageId();
SitePage sp = s.getPage(sitePageId);

注意:我尚未测试此代码以确保其有效。

于 2014-08-13T18:41:50.670 回答