如何在我们的custom portlet中仅使用内置portlet的方法?

时间:2012-10-03 12:01:31

标签: liferay portlet liferay-6

我只是想知道这是任何设施liferay提供的,我们只使用内置portlet的功能?

例如,我有一些自定义portlet,我想从我的自定义portlet中将一些文档添加到文档和媒体portlet的数据库表中。是否可能?

我不想使用它的GUI只是我需要访问它的功能或说出行动。

如果我可以这样调用我自己的portlet中任何内置portlet的adduser方法 com.liferay.portal.service.UserLocalServiceUtil.addUser

我可以这样使用吗?以及如何使用?

1 个答案:

答案 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中有所不同)