首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java中创建Liferay web内容?

如何在Java中创建Liferay web内容?
EN

Stack Overflow用户
提问于 2017-05-19 15:08:45
回答 2查看 2.3K关注 0票数 0

通过UI创建Web内容很容易。

但是如何在Java中以编程方式添加新的Web内容呢?

我必须将数据从遗留系统迁移到Liferay 7,因此我正在编写Java包。没有用户界面。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-19 19:15:10

尼古拉斯。

我在Liferay6.2中有一个类似的问题要解决,但我相信你可以用同样的方法解决你的问题。

我们构建了一个“集成接口”(一个触发整个事件的简单Java批处理项目),它与遗留系统和Liferay服务(使用创建)相结合。

Liferay为您提供了一个Service,您可以在其中处理它的一些资源。要创建日志文章(Web ),必须调用类JournalArticleLocalServiceUtil

下面是创建日刊文章的示例代码:

代码语言:javascript
复制
public static JournalArticle addJournalArticle(
        long userId, long groupId, String title, String contentEn)
        throws Exception {

    ServiceContext serviceContext = new ServiceContext();

    serviceContext.setAddGroupPermissions(true);
    serviceContext.setAddGuestPermissions(true);
    serviceContext.setScopeGroupId(groupId);
    serviceContext.setWorkflowAction(WorkflowConstants.ACTION_PUBLISH);
    Map<Locale, String> titleMap = new HashMap<Locale, String>();
    Map<Locale, String> descriptionMap = new HashMap<Locale, String>();

    titleMap.put(Locale.US, title);
    descriptionMap.put(Locale.US, title);


    try {
        JournalArticleLocalServiceUtil.deleteArticle(groupId, title, serviceContext);
    } catch (Exception ex) {
        System.out.println("Ignoring " + ex.getMessage());
    }

    String xmlContent = "<?xml version='1.0' encoding='UTF-8'?>" +
            "<root default-locale=\"en_US\" available-locales=\"en_US\">" +
                "<static-content language-id=\"en_US\">" +
                    "<![CDATA[" + contentEn + "]]>" +
                "</static-content>" +
            "</root>";

    JournalArticle article = JournalArticleLocalServiceUtil.addArticle(
            userId, groupId, 0, 
            0, 0, title, true, 
            JournalArticleConstants.VERSION_DEFAULT, titleMap, 
            descriptionMap, xmlContent, 
            "general", null, null, null, 
            1, 1, 2014, 0, 0,
            0, 0, 0, 0, 0, true, 
            0, 0, 0, 0, 0, true, 
            true, false, null, null, 
            null, null, serviceContext);

    return article;
}

但是您必须对其进行改进,以设置正确的用户权限、类别、标记等。

票数 3
EN

Stack Overflow用户

发布于 2017-07-18 16:00:48

在这种情况下,查看源代码是有帮助的。

还可以考虑使用升级过程。虽然您的情况不是真正的更新,但它听起来像是一次操作,最好在启动时执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44073473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档