我只是想知道这是任何设施liferay提供的,我们只使用内置portlet的功能?
例如,我有一些自定义portlet,我想从我的自定义portlet中将一些文档添加到文档和媒体portlet的数据库表中。是否可能?
我不想使用它的GUI只是我需要访问它的功能或说出行动。
如果我可以这样调用我自己的portlet中任何内置portlet的adduser方法 com.liferay.portal.service.UserLocalServiceUtil.addUser
我可以这样使用吗?以及如何使用?
答案 0 :(得分:1)
我不确定我是否理解了这个问题,但您当然可以在portlet中的任何位置使用许多提供的服务。 例如,如果要保存从页面上传的文件,可以使用以下内容:
protected FileEntry saveFile(String name, File file, ThemeDisplay themeDisplay) throws PortalException, SystemException{
_log.debug("request of saving new file " + name);
if (file == null){
_log.debug("file content is null.. save aborted");
return null;
}
if (!StringUtils.hasLength(name)){
_log.debug("file name is null.. save aborted");
return null;
}
long defaultRepoId = DLFolderConstants.getDataRepositoryId(themeDisplay.getScopeGroupId(), DLFolderConstants.DEFAULT_PARENT_FOLDER_ID);
ServiceContext serviceContext = new ServiceContext();
serviceContext.setSignedIn(true);
serviceContext.setAddGroupPermissions(true);
serviceContext.setAddGuestPermissions(true);
Folder folder = fetchFolder(defaultRepoId);
long folderId = (folder != null ? folder.getFolderId() : DLFolderConstants.DEFAULT_PARENT_FOLDER_ID);
FileEntry entry = DLAppServiceUtil.addFileEntry(defaultRepoId, folderId, name, MimeTypesUtil.getContentType(file), name, "", "", file, serviceContext);
_log.debug("file " + name + " saved successfully");
return entry;
}
这是你在找什么? 以类似的方式,您可以添加许多类型的实体(用户,维基节点,文档......)
请注意,DLAppServiceUtil
由Liferay提供(6.1,由于文档库的更改,可能在6.0中有所不同)