我正在研究alfresco 3.4,我正在尝试创建一个节点,在节点浏览器中建模后无法看到我的新节点,我遇到了问题,所以
任何人都可以帮助我,看看我如何创建节点以及创建节点方法参数是什么?任何人都可以指导我并澄清创建节点方法。
由于 穆罕默德·阿姆 高级系统开发人员 数字系列
答案 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
。