创建节点的正确方法是什么?并且任何人都可以为我解释createNode参数

时间:2011-08-01 08:49:38

标签: alfresco

我正在研究alfresco 3.4,我正在尝试创建一个节点,在节点浏览器中建模后无法看到我的新节点,我遇到了问题,所以

任何人都可以帮助我,看看我如何创建节点以及创建节点方法参数是什么?任何人都可以指导我并澄清创建节点方法。

由于 穆罕默德·阿姆 高级系统开发人员 数字系列

1 个答案:

答案 0 :(得分:11)

编辑:只需checked,使用ASSOC_CONTAINS代替ASSOC_CHILDREN

有许多方法可以从Java代码创建新内容,例如:

我假设你在这里指的是后一种方法。让我们看一下方法签名(createNode的另一个版本也接受初始属性的Map,我现在暂时跳过它:

ChildAssociationRef createNode(NodeRef parentRef,
                               QName assocTypeQName,
                               QName assocQName,
                               QName nodeTypeQName)
                               throws InvalidNodeRefException,
                                      InvalidTypeException

假设我们要在文件夹下创建一个新节点,您的代码将如下所示:

NodeRef folderNode = getMyFolderNode();
ChildAssociationRef childAssoc = nodeService.createNode(folderNode,
                                             ContentModel.ASSOC_CONTAINS,
                                             QName.createQName("{foo}bar"),
                                             ContentModel.TYPE_CONTENT);

此调用的结果将是在 folderNode 下创建的新节点。

新节点将通过 ContentModel.ASSOC_CONTAINS 类型的关联绑定到其父文件夹:这是最关键的部分,因为节点可以使用多个不同的关联进行关联,但节点浏览器用来将内容显示为另一个内容的父子节点只有这一个。

{foo}bar QName,用于标识此特定的父子关联本身。在节点浏览器中,您可以在节点路径中查看此参数的效果,例如/app:company_home/...../foo:bar

最后一个 ContentModel.TYPE_CONTENT 参数当然是您要创建新节点的类型。您可能希望使用引用某些自定义类型的QName