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

如何在liferay 7的liferay freemarker基础主题中检索NavItem?,liferay,liferay-7,Liferay,Liferay 7,我使用了下面的代码,但它不工作 它给出以下错误 原因:freemarker.core.\u TemplateModelException:Java构造函数“com.liferay.portal.kernel.theme.NavItem.com.liferay.portal.kernel.kernel.theme.NavItem(javax.servlet.http.HttpServletRequest,com.liferay.portal.model.Layout,Map)”接受3个参数,但给

我使用了下面的代码,但它不工作

它给出以下错误

原因:freemarker.core.\u TemplateModelException:Java构造函数“com.liferay.portal.kernel.theme.NavItem.com.liferay.portal.kernel.kernel.theme.NavItem(javax.servlet.http.HttpServletRequest,com.liferay.portal.model.Layout,Map)”接受3个参数,但给出了0.\uuu---\ u FTL堆栈跟踪(“~”表示嵌套相关)

我还使用了下面的代码,它也不工作。


基本上,我希望在主题中检索NavItem对象并使用它。

脚本上下文中的大部分变量都是由注入的。在这里,您可以找到您在问题注释中描述的基本问题的几个相关值:

  • layout
    表示当前页面(layout是技术名称)
  • layouts
    是所有页面的集合
  • 相同的值可以通过
    主题显示
  • navItems
    是所有navItems的集合,但您必须自己找到与当前页面相关的navitem。浏览
    layout

浏览
TemplateContextHelper
sourcecode可能会为您提供所需的提示。

我想知道您希望如何处理一个空的、未初始化的
NavItem
对象。这是另一种提问方式:你试图解决的问题是什么?基本上,我想检索每个子站点中我想应用主题的父站点页面。这是获取父站点页面的代码。我现在能够得到它,但通过感谢SIR的回答,我能够检索到子站点中的父站点页面。一些代码行