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

Moh*_*Amr 2 alfresco

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

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

感谢Mohammed Amr高级系统开发人员数字系列

sku*_*uro 11

编辑:刚刚选中,使用ASSOC_CONTAINS而不是ASSOC_CHILDREN

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

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

ChildAssociationRef createNode(NodeRef parentRef,
                               QName assocTypeQName,
                               QName assocQName,
                               QName nodeTypeQName)
                               throws InvalidNodeRefException,
                                      InvalidTypeException
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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

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