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



我在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);

我该怎么做?

使用NodeService:

// member of your Java class
private ServiceRegistry serviceRegistry;
// in your method
NodeService nodeService = serviceRegistry.getNodeService();
nodeService.setProperty(nodeRef, QNAME_DATE_UPDATE, new Date());
  • 获取人员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,在springbean中为这些服务添加getter-setter。

最新更新