任何人都可以帮助我如何在没有themedisplay对象的情况下获取liferay中的路径上下文(在调度程序中的意思)
我正在使用liferay 6.1
答案 0 :(得分:2)
不幸的是,没有(简单)方法可以做到这一点。
原因是 ThemeDisplay
对象与当前用户和当前页面相关联。在调度程序的上下文中(即,由系统自身进行的自动触发事件),没有当前登录的用户(好的,您可以使用默认用户,但是......),并且没有显示的页面。
您可以做的是,以便从其他地方提供所需的数据。您可以将其存储在自定义属性中,从数据库中读取或通过服务获取它等等。例如,PortalUtil.getPortalURL()
函数可能是您的朋友。
答案 1 :(得分:2)
使用公司标识的路径上下文
Company company = CompanyLocalServiceUtil.getCompanies().get(0);
String portalURL = PortalUtil.getPortalURL(company.getVirtualHostname(),PortalUtil.getPortalPort(), false);
String pathContext = PortalUtil.getPathContext();