alfresco更新java支持的webscript中的自定义属性

时间:2016-04-07 23:20:05

标签: java properties alfresco

我在contentModel.xml

中创建了一个自定义方面,其中包含person数据类型的属性
<aspect name="cm:CustomAspect">
 <title>CustomAspect</title>
 <properties>

    <property name="cm:updateDate">
       <title>updateDate</title>
       <type>d:date</type>
    </property>

 </properties>
</aspect>



 <type name="cm:person">
         <title>Person</title>
     <mandatory-aspects>
        <aspect>cm:CustomAspect</aspect>
        <aspect>cm:auditable</aspect>
     </mandatory-aspects>
  </type>

我想在java支持的webscript中设置“updateDate”属性。 在javascript webscript中,我会这样做:person.properties.updateDate = new Date();但我不知道如何在java支持的webscript中执行此操作。

我正在使用personService类来实现更新。

Map newUserProp  =  new HashMap();
newUserProp.put(QNAME_DATE_UPDATE, new Date());
personService.setPersonProperties(username, newUserProp);

我该怎么做?

2 个答案:

答案 0 :(得分:1)

使用NodeService

// member of your Java class
private ServiceRegistry serviceRegistry;

// in your method
NodeService nodeService = serviceRegistry.getNodeService();
nodeService.setProperty(nodeRef, QNAME_DATE_UPDATE, new Date());

答案 1 :(得分:1)

  • 获取人物NodeRef。

  • 获取他所有的属性地图。

  • 将您的媒体资源添加到该地图中,然后在用户中再次设置该地图。

    NodeRef userNodeRef = personService.getPerson(userLoginName);
    Map<QName, Serializable> userPropertyMap = nodeService.getProperties(userNodeRef);
                            userPropertyMap.put(QNAME_DATE_UPDATE, new Date());
                personService().setPersonProperties(userLoginName, userPropertyMap);
    

希望这会有所帮助。不要忘记在上下文文件中注入personservice和nodeservice,在spring bean中为这些服务添加getter setter。