【问题标题】:How can I get current group id (or community id) in liferay (java)?如何在 liferay (java) 中获取当前组 ID(或社区 ID)?
【发布时间】:2011-03-24 14:00:31
【问题描述】:

我正在 Liferay 6 中使用 Vaadin 开发 portlet,我需要获取 portlet 所在社区的 ID。是怎么做到的?

【问题讨论】:

    标签: java liferay vaadin


    【解决方案1】:

    Liferay 中没有社区实体,它只是另一种团体(参见GroupConstants

    如果您有权访问 ThemeDisplay 对象,我认为这将为您提供社区 ID

    long id = themeDisplay.getLayout().getGroupId();
    

    在 struts 动作中,您可以像这样获得 ThemeDisplay:

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

    其中request 可以是RenderRequestActionRequest

    【讨论】:

    • 谢谢,但是 themeDisplay 不工作,我已经试过了。 Eclipse 说“无法解析主题显示”。我可以通过创建变量themeDisplay来修复它,但是必须先初始化它,我只能将它初始化为null。如果它被初始化为null,它自然不会起作用。谢谢 - 帕特
    • 我已经更新了答案以显示您如何访问 ThemeDisplay 对象。
    • 嗨,我过了一会儿就开始工作了。我必须实现 PortletRequestListener 并在 onRequestStart 函数中初始化该主题显示!非常感谢你的队友!
    • 我认为你可能在那里做的太多了,themeDisplay 是一个非常重要的 Liferay 类,并且通常在任何地方都可以使用,而无需太多工作。您从哪里访问它?
    • 感谢 Bedwyr,themeDisplay.getLayout().getGroupId() 是我的要求。
    【解决方案2】:

    对于那些使用 Spring MVC 作为 Liferay portlet 的人,请将其添加到 ControllerClass

         @ModelAttribute("tD")
        public String getThemeDisplay(RenderRequest req) {
            ThemeDisplay themeDisplay = (ThemeDisplay) req.getAttribute(WebKeys.THEME_DISPLAY);
            return themeDisplay.getPathThemeImages();
        }
    

    要在 jsp 中引用图像,只需添加

    <img src="${tD}/[image-path] />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-30
      • 2013-11-22
      • 1970-01-01
      • 1970-01-01
      • 2012-11-27
      相关资源
      最近更新 更多