我在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);
我该怎么做?
答案 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。