Java 在Liferay中获取自定义用户字段值(expando)

Java 在Liferay中获取自定义用户字段值(expando),java,liferay,expando,Java,Liferay,Expando,我在Liferay中添加了一个自定义用户字段,并为特定用户设置了一个值 如何以编程方式访问此值 如果我尝试此操作,我总是得到空值: String customAttr = (String)user.getExpandoBridge().getAttribute("customAttr"); user.getExpandoBridge().getAttribute(“customAttr”)返回类型为java.IO.Serializable的值 也许这里的演员错了 但自定义属性确实存在(以下代码

我在Liferay中添加了一个自定义用户字段,并为特定用户设置了一个值

如何以编程方式访问此值

如果我尝试此操作,我总是得到空值:

String customAttr = (String)user.getExpandoBridge().getAttribute("customAttr");
user.getExpandoBridge().getAttribute(“customAttr”)
返回类型为
java.IO.Serializable
的值

也许这里的演员错了

但自定义属性确实存在(以下代码打印出属性键):

for(枚举attrs=user.getExpandoBridge().getAttributeNames();attrs.hasMoreElements();)
_log.info(“元素:'”+attrs.nextElement()+”);

不知何故,我没有抓住要点……

这是一个安全问题

com.liferay.portlet.expando.service.impl.expandovalueserviceinpl.getData(字符串类名称、字符串表名称、字符串列名称、长类主键)


我只需在自定义expando值上设置查看权限,一切正常。

检查如何解决在CSV中为用户导出自定义字段(expando字段)时出现的问题。如果要导出用户并定义要包含在导出中的自定义字段,则只会收到自定义字段的空值。请查看如何修复此问题。

我知道这有点晚了,但对于那些仍在试图找出自定义字段结果为空的原因的人(尽管它在Liferay中已明确设置且可见),请首先确保自定义字段具有正确设置的权限(控制面板->自定义域->用户->选择适当的自定义域,然后单击操作->权限)。默认情况下,所有者拥有所有权限,但在我的情况下,例如,我需要来宾帐户的查看权限(登录过程中的用户)。希望这有帮助。

所有链接都处于脱机状态。您能在此处报告您的解决方案吗?是的,授予guest权限对我来说很有用,因为我尝试通过站点级别(组)访问自定义字段(expando),并通过点击rest服务获取数据,而不登录。请授予guest权限查看
for (Enumeration<String> attrs = user.getExpandoBridge().getAttributeNames(); attrs.hasMoreElements();)
    _log.info("elem: '" + attrs.nextElement() + "'");
    if (ExpandoColumnPermission.contains(
            getPermissionChecker(), column, ActionKeys.VIEW)) {

        return expandoValueLocalService.getData(
            className, tableName, columnName, classPK);
    }
    else {
        return null;
    }