2013-02-19 3 views
4
  • liferay 프로젝트에서 잘 작동하는 navigation.vm 파일의 메뉴를 정의합니다.
  • 그러나 내 포틀릿에서이 메뉴에 액세스하려고합니다.
  • 포틀릿 엔트리 포인트 또는 view.jsp에서 메뉴에 액세스 할 수있는 방법이 있습니까 ????

답변

0

link은 jsp에서 메뉴 항목을 직접 가져 오는 방법을 설명합니다.

아래 코드

는 일부 개선 된 서식 위의 링크에서 직접 재현 :

<%@ taglib uri="http://liferay.com/tld/theme" prefix="liferay-theme" %> 
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> 

<%@ page import="java.util.List" %> 
<%@ page import="java.util.ArrayList" %> 
<%@ page import="com.liferay.portal.model.Layout"%> 
<%@ page import="com.liferay.portal.kernel.util.WebKeys"%> 
<%@ page import="com.liferay.portal.theme.NavItem" %> 
<%@ page import="com.liferay.portal.theme.RequestVars" %> 
<%@ page import="com.liferay.portal.theme.ThemeDisplay"%> 

<portlet:defineObjects /> 

<liferay-theme:defineObjects /> 

<div style="width:100%"> 
<% 
//ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); 

String title = themeDisplay.getLayout().getName(themeDisplay.getLocale()); 

List<NavItem> navItems = new ArrayList<NavItem>(); 

if (layout != null) { 
    RequestVars requestVars = new RequestVars(request, themeDisplay, layout.getAncestorPlid(), layout.getAncestorLayoutId()); 
    navItems = NavItem.fromLayouts(requestVars, layouts); 
} 

for (NavItem navItem : navItems) { 
    if (navItem.getName().equalsIgnoreCase(title)) { 
     if (navItem.hasChildren()) { 

      for(NavItem navChild : navItem.getChildren()) { 
%> 

    <div style="float:left;" class="newsMenuPortlet"> 
     <a href="<%= navChild.getURL() %>" <%=navChild.getTarget() %>> 
      <%= navChild.getName() %> 
     </a> 
    </div> 

<% 
      } // inner for-loop ends here 
     } 
    } 
}// outer for-loop ends here 
%> 

</div> 
+0

감사 그것은 또한 내가 모든 메뉴 및 하위 메뉴를 가지고 –

+1

하지만 내가 어떻게 아이콘을 얻을 작동합니다. 좋아요 : navClind.icon(); –

1

수입 liferay-ui 태그 라이브러리 :

<%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %> 

후 사용할 수

<liferay-ui:navigation displayStyle="from-level-0" > 
</liferay-ui:navigation> 

참고 : 당신이 얻을 다른 속성을 재생할 수 있습니다 navigation.vm에 같은 당신에게 정상적인 동작을 제공하는 displayStyle="from-level-0" 설정 다른 행동.

관련 문제