当前位置: 首页 > 知识库问答 >
问题:

如何在汇流宏中呈现页面的所有子内容

胡星汉
2023-03-14
    @Override
    public String execute(Map<String, String> parameters, String body,
            ConversionContext context) throws MacroExecutionException {
        //loop through each child page and get its content
        StringBuilder sb = new StringBuilder();
        ContentEntityObject ceo = context.getPageContext().getEntity();
        Page parent =(Page) ceo ;
        List<Page> children = parent.getChildren();

        for(Page child:children)

        {
          sb.append(child.getBodyAsString());
        }

        return sb.toString();
    }

我如何获得所有的信息,而不仅仅是文本?

另外,我用java标记这一点,因为这是插件所写的。

共有1个答案

闻鹤龄
2023-03-14

好了,我想通了。

我需要将它从存储格式转换为视图格式,以便它也能呈现宏。

{

  String converted = xhtmlUtils.convertStorageToView(child.getBodyAsString(), context);
  sb.append(converted);

}

如果您遵循教程,则在构造函数中初始化xhtmlUtils

private final XhtmlContent xhtmlUtils;

public ExampleMacro(XhtmlContent xhtmlUtils) 
{
    this.xhtmlUtils = xhtmlUtils;   
}
@RequiresFormat(Format.Storage)
public String execute(Map<String, String> params, String body, ConversionContext conversionContext) throws MacroExecutionException {
import com.atlassian.confluence.content.render.xhtml.macro.annotation.Format;
import com.atlassian.confluence.content.render.xhtml.macro.annotation.RequiresFormat
 类似资料:
  • 如何创建具有生成内联输出的主体的汇流宏?以下宏:

  • 这可能吗?我所做的更改需要在服务器上被识别,以便更改不仅仅发生在我的计算机上。此外,我甚至不知道是否可以在不下载外部插件的情况下查看实际的源代码(由于某些原因,外部插件无法工作)。有人做过这样的事吗?

  • 我正在遵循关于为confluence Version5.9.7编写自定义宏的官方教程。我从教程中唯一改变的是插件名和包名,你可以在我附在这里的文件中看到。在运行altas-run.bat之后,我可以在system configuration页面中发现,插件已经成功安装并启用,同时具有两个模块。但是当我试图将此宏插入页面时,我在宏浏览器中找不到它。 为什么它抱怨没有找到XhtmlContent类型的

  • 问题内容: JavaScript代码window.print()可以打印当前的HTML页面。 如果我在HTML页面中有一个div(例如,从ASP.NETMVC视图呈现的页面),那么我只想打印div。 是否有jQuery兼容的JavaScript或普通的JavaScript代码来实现此请求? 更清楚地说,假设呈现的HTML页面是这样的: 然后我要单击“打印”按钮,仅打印div3。 问题答案: 我会这

  • 使用atlassian-python-api 1.15.1模块和,我如何下载附加到合流页面的文件? API文档的page actions部分提到了一个API,使用它我可以成功地获得所有页面附件及其元数据的列表。在这个问题的末尾有一个示例,说明了通过打印键中的一个项可以获得什么。 “结果”键: {'id':'56427526'、'type':'attachment'、'status':'curren

  • 我将Nuxt与Vue路由器和Axios一起使用。我看到Vue路由器有一个叫做导航卫士的神奇功能。 不幸的是,在下面的示例中,调用了my函数,但似乎在中调用手动方法之前退出并切换页面。 这里正确的模式是什么? 我假设我对