我需要获取ThemeDisplay对象,以便可以访问控制器中的页面URL。
我正在尝试以下代码,但它给出了空指针异常

@RenderMapping
public String showItems(ModelMap model, RenderResponse response, RenderRequest request)
{
   ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
   Layout layout = themeDisplay.getLayout();
   String uri = layout.getFriendlyURL();
   return "home";
}

我已经尝试打印WebKeys.THEME_DISPLAY的请求属性,但是在我的请求中该属性为null。

我在pom.xml中添加了以下依赖项
<dependency>
  <groupId>com.liferay.portal</groupId>
  <artifactId>portal-service</artifactId>
  <version>6.1.2</version>
</dependency>

谢谢。

最佳答案

我为我的问题找到了解决方案:)
我添加了所提供的portlet-service jar的作用域,它对我有用。

<dependency>
   <groupId>com.liferay.portal</groupId>
   <artifactId>portal-service</artifactId>
   <version>6.2.0-B1</version>
   <scope>provided</scope>
</dependency>

希望这对将来有帮助。

08-25 11:00