opencms取得全站一二级导航

本文介绍使用Java和JSP在OpenCMS系统中构建不同层级的网站导航菜单的方法,包括获取当前位置及其子导航、全站一二级导航及当前文件的标题导航等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

取得当前位置导航和下一级导航

Java代码 复制代码   收藏代码
  1. <%@ page import="java.util.*,org.opencms.jsp.*,org.opencms.file.CmsResource.*,org.opencms.frontend.templateone.*" %>      
  2. <%      
  3. // Create a JSP action element      
  4. CmsJspActionElement cms = new CmsJspActionElement(pageContext, request, response);      
  5. // Some shortcuts to often used Strings      
  6. String filename = cms.getCmsObject().getRequestContext().getUri();      
  7. String foldername=org.opencms.file.CmsResource.getFolderPath(filename);      
  8. String foldericon=cms.link("system/modules/com.alkacon.documentation/resources/ic_folder.gif");      
  9. String fileicon=cms.link("system/modules/com.alkacon.documentation/resources/ic_file.gif");      
  10.      
  11. // List of all pages / subfolders (sorted by NavPos property)      
  12. List list = cms.getNavigation().getNavigationForFolder();      
  13. Iterator i = list.iterator();      
  14. // Now build the navigation      
  15. out.println("<div id=/"dhtmlgoodies_slidedown_menu/"><ul>");      
  16. while (i.hasNext()) {      
  17.     CmsJspNavElement ne = (CmsJspNavElement)i.next();      
  18.          
  19.     String target=ne.getProperty("target");      
  20.     if(target==null)      
  21.         target="_self";      
  22.     if (ne.getResourceName().equals(filename)) {      
  23.        out.println("<b>");      
  24.        out.println(ne.getNavText()+"</b>");      
  25.     }       
  26.     else {       
  27.         out.println("<li><a href=/"" + cms.link(ne.getResourceName()) + "/"target=/""+"/">" + ne.getNavText() + "</a></li>");      
  28.         if(ne.isFolderLink()){      
  29.            List subnav = cms.getNavigation().getSiteNavigation(ne.getResourceName(),-1);      
  30.            Iterator j = subnav.iterator();      
  31.            out.println("<ul>");      
  32.            while (j.hasNext()) {      
  33.                 CmsJspNavElement ne2 = (CmsJspNavElement)j.next();      
  34.                 if (!ne2.getResourceName().equals(filename)) {      
  35.                    out.println("<li><a href=/"" + cms.link(ne2.getResourceName()) + "/"target=/""+"/">" + ne2.getNavText() + "</a></li>");       
  36.                 }      
  37.                 else {      
  38.                       out.println("<b>");      
  39.                       out.println(ne2.getNavText()+"</b>");      
  40.                 }      
  41.             }      
  42.          out.println("</ul>");      
  43.          }       
  44.     }       
  45. }      
  46.     out.println("</ul></div>");      
  47. %>    
<%@ page import="java.util.*,org.opencms.jsp.*,org.opencms.file.CmsResource.*,org.opencms.frontend.templateone.*" %>   
<%   
// Create a JSP action element   
CmsJspActionElement cms = new CmsJspActionElement(pageContext, request, response);   
// Some shortcuts to often used Strings   
String filename = cms.getCmsObject().getRequestContext().getUri();   
String foldername=org.opencms.file.CmsResource.getFolderPath(filename);   
String foldericon=cms.link("system/modules/com.alkacon.documentation/resources/ic_folder.gif");   
String fileicon=cms.link("system/modules/com.alkacon.documentation/resources/ic_file.gif");   
  
// List of all pages / subfolders (sorted by NavPos property)   
List list = cms.getNavigation().getNavigationForFolder();   
Iterator i = list.iterator();   
// Now build the navigation   
out.println("<div id=/"dhtmlgoodies_slidedown_menu/"><ul>");   
while (i.hasNext()) {   
    CmsJspNavElement ne = (CmsJspNavElement)i.next();   
      
    String target=ne.getProperty("target");   
    if(target==null)   
        target="_self";   
    if (ne.getResourceName().equals(filename)) {   
       out.println("<b>");   
       out.println(ne.getNavText()+"</b>");   
    }    
    else {    
        out.println("<li><a href=/"" + cms.link(ne.getResourceName()) + "/"target=/""+"/">" + ne.getNavText() + "</a></li>");   
        if(ne.isFolderLink()){   
           List subnav = cms.getNavigation().getSiteNavigation(ne.getResourceName(),-1);   
           Iterator j = subnav.iterator();   
           out.println("<ul>");   
           while (j.hasNext()) {   
                CmsJspNavElement ne2 = (CmsJspNavElement)j.next();   
                if (!ne2.getResourceName().equals(filename)) {   
                   out.println("<li><a href=/"" + cms.link(ne2.getResourceName()) + "/"target=/""+"/">" + ne2.getNavText() + "</a></li>");    
                }   
                else {   
                      out.println("<b>");   
                      out.println(ne2.getNavText()+"</b>");   
                }   
            }   
         out.println("</ul>");   
         }    
    }    
}   
    out.println("</ul></div>");   
%>  



--------------------------------------------------------------------------------
取得全站一二级导航

Java代码 复制代码   收藏代码
  1. <%@ page import="java.util.*,org.opencms.jsp.*,org.opencms.file.CmsResource.*,org.opencms.frontend.templateone.*" %>      
  2. <%      
  3. // Create a JSP action element      
  4. CmsJspActionElement cms = new CmsJspActionElement(pageContext, request, response);      
  5. // Some shortcuts to often used Strings      
  6. String filename = cms.getCmsObject().getRequestContext().getUri();      
  7. String foldername=org.opencms.file.CmsResource.getFolderPath(filename);      
  8. String foldericon=cms.link("system/modules/com.alkacon.documentation/resources/ic_folder.gif");      
  9. String fileicon=cms.link("system/modules/com.alkacon.documentation/resources/ic_file.gif");      
  10.      
  11. // List of all pages / subfolders (sorted by NavPos property)      
  12. List list = cms.getNavigation().getNavigationForFolder("/");      
  13. Iterator i = list.iterator();      
  14. // Now build the navigation      
  15. out.println("<div id=/"dhtmlgoodies_slidedown_menu/"><ul>");      
  16. while (i.hasNext()) {      
  17.     CmsJspNavElement ne = (CmsJspNavElement)i.next();      
  18.          
  19.     String target=ne.getProperty("target");      
  20.     if(target==null)      
  21.         target="_self";      
  22.     if (ne.getResourceName().equals(filename)) {      
  23.        out.println("<b>");      
  24.        out.println(ne.getNavText()+"</b>");      
  25.     }       
  26.     else {       
  27.         out.println("<li><a href=/"" + cms.link(ne.getResourceName()) + "/"target=/""+"/">" + ne.getNavText() + "</a></li>");      
  28.         if(ne.isFolderLink()){      
  29.            List subnav = cms.getNavigation().getSiteNavigation(ne.getResourceName(),-1);      
  30.            Iterator j = subnav.iterator();      
  31.            out.println("<ul>");      
  32.            while (j.hasNext()) {      
  33.                 CmsJspNavElement ne2 = (CmsJspNavElement)j.next();      
  34.                 if (!ne2.getResourceName().equals(filename)) {      
  35.                    out.println("<li><a href=/"" + cms.link(ne2.getResourceName()) + "/"target=/""+"/">" + ne2.getNavText() + "</a></li>");       
  36.                 }      
  37.                 else {      
  38.                       out.println("<b>");      
  39.                       out.println(ne2.getNavText()+"</b>");      
  40.                 }      
  41.             }      
  42.          out.println("</ul>");      
  43.          }       
  44.     }       
  45. }      
  46.     out.println("</ul></div>");      
  47. %>    
<%@ page import="java.util.*,org.opencms.jsp.*,org.opencms.file.CmsResource.*,org.opencms.frontend.templateone.*" %>   
<%   
// Create a JSP action element   
CmsJspActionElement cms = new CmsJspActionElement(pageContext, request, response);   
// Some shortcuts to often used Strings   
String filename = cms.getCmsObject().getRequestContext().getUri();   
String foldername=org.opencms.file.CmsResource.getFolderPath(filename);   
String foldericon=cms.link("system/modules/com.alkacon.documentation/resources/ic_folder.gif");   
String fileicon=cms.link("system/modules/com.alkacon.documentation/resources/ic_file.gif");   
  
// List of all pages / subfolders (sorted by NavPos property)   
List list = cms.getNavigation().getNavigationForFolder("/");   
Iterator i = list.iterator();   
// Now build the navigation   
out.println("<div id=/"dhtmlgoodies_slidedown_menu/"><ul>");   
while (i.hasNext()) {   
    CmsJspNavElement ne = (CmsJspNavElement)i.next();   
      
    String target=ne.getProperty("target");   
    if(target==null)   
        target="_self";   
    if (ne.getResourceName().equals(filename)) {   
       out.println("<b>");   
       out.println(ne.getNavText()+"</b>");   
    }    
    else {    
        out.println("<li><a href=/"" + cms.link(ne.getResourceName()) + "/"target=/""+"/">" + ne.getNavText() + "</a></li>");   
        if(ne.isFolderLink()){   
           List subnav = cms.getNavigation().getSiteNavigation(ne.getResourceName(),-1);   
           Iterator j = subnav.iterator();   
           out.println("<ul>");   
           while (j.hasNext()) {   
                CmsJspNavElement ne2 = (CmsJspNavElement)j.next();   
                if (!ne2.getResourceName().equals(filename)) {   
                   out.println("<li><a href=/"" + cms.link(ne2.getResourceName()) + "/"target=/""+"/">" + ne2.getNavText() + "</a></li>");    
                }   
                else {   
                      out.println("<b>");   
                      out.println(ne2.getNavText()+"</b>");   
                }   
            }   
         out.println("</ul>");   
         }    
    }    
}   
    out.println("</ul></div>");   
%>  


---------------------------------------------------------------------------------------------

取得当前文件 title导航

Java代码 复制代码   收藏代码
  1. <%@page session="false" import="org.opencms.frontend.templatetwo.*"%>   
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>   
  3. <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>   
  4. <%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms"%><%    
  5.   
  6.     // This element defines breadcrumb navigation.   
  7.     //   
  8.     // It uses the CmsTemplateMenu class to provide some auxiliary methods   
  9.     // in order to prevent the use of scriplet code in this jsp.   
  10.     // For details on the CmsTemplateMenu class, see the source code which can   
  11.     // be found at the followinf VFS location:   
  12.     // /system/modules/org.opencms.frontend.templatetwo/java_src/CmsTemplateMenu.java   
  13.   
  14.     CmsTemplateMenu cms = new CmsTemplateMenu(pageContext, request, response);   
  15.     pageContext.setAttribute("cms", cms);   
  16.     pageContext.setAttribute("navList", cms.getNavigation().getNavigationBreadCrumb(1true));   
  17. %>   
  18.   
  19. <c:set var="first" value="true" />   
  20. <c:forEach items="${navList}" var="elem" >   
  21.     <c:if test="${!empty cms.navText[elem]}">   
  22.         <c:if test="${!first}">&nbsp;»&nbsp;</c:if>   
  23.         <a href="<cms:link>${elem.resourceName}</cms:link>">${cms.navText[elem]}</a>   
  24.         <c:set var="first" value="false" />   
  25.     </c:if>   
  26. </c:forEach>   
  27.   
  28. <c:if test="${!cms.isDefault || first}">   
  29.     <c:set var="navText"><cms:property name="NavText" /></c:set>   
  30.     <c:if test="${empty navText}">   
  31.         <c:set var="navText"><cms:property name="Title" /></c:set>   
  32.     </c:if>   
  33.     <c:if test="${!empty navText}">   
  34.         <c:if test="${!first}">   
  35.             &nbsp;»&nbsp;   
  36.         </c:if>   
  37.         <c:out value="${navText}" />   
  38.     </c:if>   
  39. </c:if>  
<%@page session="false" import="org.opencms.frontend.templatetwo.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms"%><% 

    // This element defines breadcrumb navigation.
    //
	// It uses the CmsTemplateMenu class to provide some auxiliary methods
	// in order to prevent the use of scriplet code in this jsp.
	// For details on the CmsTemplateMenu class, see the source code which can
	// be found at the followinf VFS location:
	// /system/modules/org.opencms.frontend.templatetwo/java_src/CmsTemplateMenu.java

	CmsTemplateMenu cms = new CmsTemplateMenu(pageContext, request, response);
	pageContext.setAttribute("cms", cms);
	pageContext.setAttribute("navList", cms.getNavigation().getNavigationBreadCrumb(1, true));
%>

<c:set var="first" value="true" />
<c:forEach items="${navList}" var="elem" >
	<c:if test="${!empty cms.navText[elem]}">
		<c:if test="${!first}">&nbsp;»&nbsp;</c:if>
		<a href="<cms:link>${elem.resourceName}</cms:link>">${cms.navText[elem]}</a>
		<c:set var="first" value="false" />
	</c:if>
</c:forEach>

<c:if test="${!cms.isDefault || first}">
	<c:set var="navText"><cms:property name="NavText" /></c:set>
	<c:if test="${empty navText}">
		<c:set var="navText"><cms:property name="Title" /></c:set>
	</c:if>
	<c:if test="${!empty navText}">
		<c:if test="${!first}">
			&nbsp;»&nbsp;
		</c:if>
		<c:out value="${navText}" />
	</c:if>
</c:if>


================================================================================
取得当前导航的二级导航列表

Jsp代码 复制代码   收藏代码
  1. <%@page session="false" import="org.opencms.frontend.templatetwo.*"%>   
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>   
  3. <%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms"%><%   
  4.   
  5.     // This element defines the left navigation element.   
  6.     // It uses the CmsTemplateMenu class to provide some auxiliary methods   
  7.     // in order to prevent the use of scriplet code in this jsp.   
  8.     // For details on the CmsTemplateMenu class, see the source code which can   
  9.     // be found at the following VFS location:   
  10.     // /system/modules/org.opencms.frontend.templatetwo/java_src/CmsTemplateMenu.java   
  11.   
  12.     CmsTemplateMenu cms = new CmsTemplateMenu(pageContext, request, response);   
  13.     cms.setElements(cms.getNavigation().getNavigationTreeForFolder(cms.getRequestContext().getUri(), 13));   
  14.     pageContext.setAttribute("cms", cms);   
  15. %>   
  16.   
  17. <div id="nav_left">   
  18.     <ul>   
  19.         <c:set var="oldLevel" value="" />   
  20.         <c:forEach items="${cms.elements}" var="elem">   
  21.             <c:set var="currentLevel" value="${elem.navTreeLevel}" />   
  22.                
  23.             <c:choose>   
  24.                 <c:when test="${empty oldLevel}"></c:when>   
  25.                 <c:when test="${currentLevel > oldLevel}"><ul></c:when>   
  26.                 <c:when test="${currentLevel == oldLevel}"></li></c:when>   
  27.                 <c:when test="${oldLevel > currentLevel}">   
  28.                     <c:forEach begin="${currentLevel+1}" end="${oldLevel}"></li></ul></c:forEach>   
  29.                 </c:when>   
  30.             </c:choose>   
  31.                
  32.             <li><a href="<cms:link>${elem.resourceName}</cms:link>" <c:if test="${cms.isCurrent[elem]}">class="current"</c:if>>${elem.navText}</a>   
  33.                
  34.             <c:set var="oldLevel" value="${currentLevel}" />   
  35.         </c:forEach>   
  36.            
  37.         <c:forEach begin="${cms.topLevel+1}" end="${oldLevel}"></li></ul></c:forEach>   
  38.     </ul>   
  39. </div>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值