首页 > 解决方案 > JcrExportCommand 过滤器以排除 magnolia cms 中的“mgnl:page”

问题描述

当我在具有自定义操作的节点上执行它时,我想过滤掉 magnolia 中 JcrExportCommand 的“mgnl:page”节点。

我在下面的代码中编写的过滤器不起作用。它仍然给我导出文件中的 mgnl:page 子节点。

//set filter to only export mgnl:area subnodes
    DefaultFilter filter = new JcrExportCommand.DefaultFilter();
    NodeFilteringPredicate nodePredicate = new NodeFilteringPredicate();
    nodePredicate.setNodeTypes(Lists.newArrayList("mgnl:area"));
    filter.setNodePredicate(nodePredicate);

如何设置正确的过滤器以导出除“mgnl:page”子节点之外的所有内容?我相信将 NodeFilteringPredicate 设置为“mgnl:area”我只会得到该类型的节点。

标签: magnolia

解决方案


您必须设置过滤器JcrExportCommand才能使其生效:

DefaultFilter filter = new DefaultFilter();
filter.getNodePredicate().getNodeTypes().add("mgnl:page");
jcrExport.setFilter(Collections.singletonMap("website", filter));

推荐阅读