如何在liferay 7中的liferay freemarker基本主题中检索NavItem?

时间:2017-04-05 02:55:11

标签: liferay liferay-7

我使用了以下代码,但它无效。

< #assign navItem = objectUtil(" com.liferay.portal.kernel.theme.NavItem")/>

它给出了以下错误。

引起:freemarker.core._TemplateModelException:Java构造函数" com.liferay.portal.kernel.theme.NavItem.com.liferay.portal.kernel.theme.NavItem(javax.servlet.http.HttpServletRequest, com.liferay.portal.kernel.model.Layout,Map)"需要3个参数,但是给出了0 .__ ---- _ FTL堆栈跟踪("〜"表示与嵌套相关)

我还使用了以下代码,它也无法正常工作。 < #assign navItemClass = portal.getClass()。forName(" com.liferay.portal.kernel.theme.NavItem")>

基本上我想在主题中检索NavItem对象并想要使用它。

1 个答案:

答案 0 :(得分:1)

脚本编制上下文获取documentation注入的大部分变量。在那里,您可以找到您在问题评论中描述的基本问题的几个相关值:

  • layout代表当前页面(布局是技术名称)
  • layouts是所有网页的集合
  • 可以通过themeDisplay
  • 检索相同的值
  • navItems是所有navItem的集合,但您必须自己找到与当前页面相关的那个。通过layout
  • 可能更容易

浏览TemplateContextHelper源代码可能会为您提供所需的提示。