在 liferay 中以编程方式创建站点(组)

Posted

技术标签:

【中文标题】在 liferay 中以编程方式创建站点(组)【英文标题】:Create sites(groups) programmatically in liferay 【发布时间】:2021-12-08 02:26:38 【问题描述】:

过去一周我一直在努力完成这项工作,但我自己无法完成(我对 java 和 liferay 都是新手)。所以我希望有人能帮忙。

我正在尝试通过按一个按钮在 liferay 中创建网站,以便用户可以创建自己的网站。这是我已经拥有的一些代码:

public void addGroup(ActionRequest request, ActionResponse response)  
    
    ThemeDisplay theme = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);  
    
    long userId = theme.getUserId();
    
    String friendly = "/hilversum";
    
    String name = "hilversum";
    
    Map<Locale, String> nameMap = new HashMap<Locale, String>();
    nameMap.put(LocaleUtil.NETHERLANDS, name);
    
    try 
        GroupLocalServiceUtil.addGroup( userId, GroupConstants.DEFAULT_PARENT_GROUP_ID, "", 37632, GroupConstants.DEFAULT_LIVE_GROUP_ID, 
                nameMap, null, GroupConstants.TYPE_SITE_OPEN, false, GroupConstants.DEFAULT_MEMBERSHIP_RESTRICTION, friendly, true, true, new ServiceContext() );
     catch (PortalException e) 
        
        e.printStackTrace();
    
    

当有人在带有 portlet actionURL 的表单上按下提交时,此方法在我的 jsp 中使用。 但是,当我按下按钮时,出现异常:com.liferay.portal.kernel.exception.GroupKeyException 在 com.liferay.portal.service.impl.GroupLocalServiceImpl.validateGroupKey(GroupLocalServiceImpl.java:4868) 在 com.liferay.portal.service.impl.GroupLocalServiceImpl.addGroup(GroupLocalServiceImpl.java:387) 在 com.liferay.portal.service.impl.GroupLocalServiceImpl.addGroup(GroupLocalServiceImpl.java:481)

我的代码做错了吗?还是我给 addGroup 方法的变量错了?

【问题讨论】:

【参考方案1】:

您传递给 addGroup 方法的 nameMap 至少应该具有您的默认语言环境。换个试试

    nameMap.put(LocaleUtil.NETHERLANDS, name);

通过

    nameMap.put(LocaleUtil.getDefault(), name);

别忘了将名称翻译成默认的语言环境。

LocaleUtil 包是

    import com.liferay.portal.kernel.util.LocaleUtil;

obs.:我正在使用 Liferay 版本 7.3.10 GA1

【讨论】:

以上是关于在 liferay 中以编程方式创建站点(组)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 liferay 中以编程方式创建“空”期刊文章

如何在 Swift 中以编程方式旋转一组按钮?

如何以编程方式创建 Liferay 7 Web 内容模板?

如何在 ios 应用程序中以编程方式获取任何站点上图像的 url?

在 Liferay 6.2 中,保存按钮在站点设置中不起作用

在 replaceAll 中以编程方式获取捕获组