0

如何正确获取liferay portlet中的页面组织?

我试过了:

公司。不是一个组织,而是一个门户实例。

团体。是当前用户组,而不是当前页面。

更新

我在portlet 类的doView方法中。我知道如何将我可以在这里获得的任何东西向上传递给 JSP,以便通过EL/JSTL.

更新 2

group.getOrganizationId()总是返回零。

更新 3

我用来准备变量的这段代码

private void storeVariables(RenderRequest renderRequest) {

    PortletPreferences prefs = renderRequest.getPreferences();
    String image_id = (String) prefs.getValue("image_id", "communicator");

    ThemeDisplay themeDisplay = (ThemeDisplay)renderRequest.getAttribute(WebKeys.THEME_DISPLAY);

    Company company = themeDisplay.getCompany();

    Group group = themeDisplay.getScopeGroup();
    log.info("group = {}", group);

    long organizationId = group.getOrganizationId();
    log.info("organizationId = {}", organizationId);

    PortletDisplay portletDisplay = themeDisplay.getPortletDisplay();


    String contextPath = renderRequest.getContextPath();
    if( !contextPath.endsWith("/") ) {
        contextPath = contextPath + "/";
    }

    renderRequest.setAttribute("images", images);
    renderRequest.setAttribute("image", images.get(image_id));
    renderRequest.setAttribute("image_id", image_id);
    renderRequest.setAttribute("themeDisplay", themeDisplay);
    renderRequest.setAttribute("portletDisplay", portletDisplay);
    renderRequest.setAttribute("contextPath", contextPath);


}

更新 3

JSP 中的以下代码返回空字符串

<!-- scopeGroupId = <c:out value="${scopeGroupId}"/> -->
4

1 回答 1

3

是内容和页面的容器,是站点、布局范围、登台等的内部实体。

在 Liferay 6.1 中,站点(在以前的版本中称为社区)可以与组织相关联。这取决于您所在的位置(在 JSP 中、在 portlet 类中等),但是,如果您有代表当前组的实体,您可以编写如下内容:

Organization organization = null;

if (group.isOrganization()) {
    organization = OrganizationLocalServiceUtil.getOrganization(group.getOrganizationId());
}

希望能帮助到你。询问您是否需要帮助才能检索 Group 对象...

于 2013-04-29T21:16:32.640 回答