首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Liferay -自定义属性在暂存时为空

Liferay -自定义属性在暂存时为空
EN

Stack Overflow用户
提问于 2015-09-17 08:45:31
回答 1查看 573关注 0票数 2

我有一个问题,获取我的自定义属性(站点)在Liferay分期模式的值。

我试图在我的主题中使用以下代码来获得值:

代码语言:javascript
复制
Map<String, Serializable> myAttributes = site.getExpandoBridge().getAttributes();

但是,暂存的输出是空的:

代码语言:javascript
复制
{custom-attribute-1=, custom-attribute-2=}

直播输出:

代码语言:javascript
复制
{custom-attribute-1="mystring", custom-attribute-2="mystring"}

我在用Liferay 6.2+

你有什么想法吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-22 14:48:37

你的问题似乎是"Liferay特性“。如果使用站点自定义属性或更常见的Group值,则每个Group值指向其站点的classPk。例如,我的Expando值data_为"21005“,classPK (组/站点Id)为"20373”。

您可以在Liferay数据库中查看此内容:

代码语言:javascript
复制
SELECT * FROM lportal.expandovalue where data_ like 21005;

您将获得的classPk "20373“是您的生活站点的classPk和而不是您的分期站点的classPk。

这是因为Liferay使用一个新的classPK (例如:"20791")和一个额外的数据库条目lifeGroupId = "20373“为您的暂存站点生成一个新的组。

您可以在DB中检查它:

代码语言:javascript
复制
SELECT * FROM lportal.group_ where liveGroupId like 20373;

然后你就能得到你的舞台了。

很抱歉给出了很难的解释,但这是你遇到的一个难题。

和什么是解决方案?

在您的主题中(或者在某个地方获得Expando值),您必须检查它是否是StagingGroup,并使用LiveSite的扩展值。就像这样:

代码语言:javascript
复制
if (myGroup.isStagingGroup(){      //com.liferay.portal.model.Group
    myLiveGroup = myGroup.getLiveGroup;        
    Map<String, Serializable> myAttributes = myLiveGroup.getExpandoBridge().getAttributes(); //Use the expando values of Livesite
}

我希望我的答案能帮助你在你的分期站点上显示你的扩张性值。

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

https://stackoverflow.com/questions/32626068

复制
相关文章

相似问题

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