如何获取路径上下文而不使用liferay中的themedisplay对象

时间:2014-01-21 07:13:45

标签: java liferay liferay-6

任何人都可以帮助我如何在没有themedisplay对象的情况下获取liferay中的路径上下文(在调度程序中的意思)

我正在使用liferay 6.1

2 个答案:

答案 0 :(得分:2)

不幸的是,没有(简单)方法可以做到这一点。

原因是 ThemeDisplay对象与当前用户和当前页面相关联。在调度程序的上下文中(即,由系统自身进行的自动触发事件),没有当前登录的用户(好的,您可以使用默认用户,但是......),并且没有显示的页面。

您可以做的是,以便从其他地方提供所需的数据。您可以将其存储在自定义属性中,从数据库中读取或通过服务获取它等等。例如,PortalUtil.getPortalURL()函数可能是您的朋友。

否则,您需要request object to get the ThemeDisplay

答案 1 :(得分:2)

使用公司标识的路径上下文

    Company company = CompanyLocalServiceUtil.getCompanies().get(0);
    String portalURL = PortalUtil.getPortalURL(company.getVirtualHostname(),PortalUtil.getPortalPort(), false);
    String pathContext = PortalUtil.getPathContext();