Некоторое время
#set($layoutLocalService = $serviceLocator.findService("com.liferay.portal.service.LayoutLocalService")) #set($longClass = $portal.getClass().forName("java.lang.Long")) #set($longClassPrimitive = $longClass.getDeclaredField("TYPE").get(null)) #set($httpServletRequestClass = $portal.getClass().forName("javax.servlet.http.HttpServletRequest")) #set($themeDisplayClass = $portal.getClass().forName("com.liferay.portal.theme.ThemeDisplay")) #set($requestVarsClass = $portal.getClass().forName("com.liferay.portal.theme.RequestVars")) #set($navItemClass = $portal.getClass().forName("com.liferay.portal.theme.NavItem")) #set($layoutClass = $portal.getClass().forName("com.liferay.portal.model.Layout")) #set($requestVars = $requestVarsClass.getConstructor($httpServletRequestClass, $themeDisplayClass, $longClassPrimitive, $longClassPrimitive).newInstance($request, $themeDisplay, $layout.getAncestorPlid(), $layout.getAncestorLayoutId())) #set($ancessorLayout = $layoutLocalService.getLayout($layout.getAncestorPlid())) #set($currentNavItem = $navItemClass.getConstructor($requestVarsClass, $layoutClass).newInstance($requestVars, $ancessorLayout ))
работает на ура.
Привет, начиная с версии 6.1.20 EE GA2 в сигнатуре конструктора класса RequestVars появился ещё один параметр TemplateContext templateContext. Чтобы работал вышенаписанный код, поправьте/добавьте эти строчки:
ОтветитьУдалить#set($templateContextClass = $portal.getClass().forName("com.liferay.portal.kernel.templateparser.TemplateContext"))
#set($velocityContextImplObj = $portal.getClass().forName("com.liferay.portal.velocity.VelocityContextImpl").getConstructor().newInstance())
спасибо, что не поленились и рассказали об обновлении! думаю, тот кто найдет эту страницу найдет и обновление для 6.1.20 от вас )
Удалить