我在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。