Navigation 如何根据openCMS 8.5.2中的文件夹站点结构创建导航菜单?
嗯,我正在尝试为一个网站制作一个导航菜单,自动从网站的文件夹结构中获取其值。我正在使用opencms导航标签。结构类似于:Navigation 如何根据openCMS 8.5.2中的文件夹站点结构创建导航菜单?,navigation,navbar,opencms,Navigation,Navbar,Opencms,嗯,我正在尝试为一个网站制作一个导航菜单,自动从网站的文件夹结构中获取其值。我正在使用opencms导航标签。结构类似于: 菜单1 菜单2 子菜单2.1 子菜单2.2 子菜单2.2.1 子菜单2.3 我想要的是让所有元素能够始终显示相同的菜单,无论您当时处于哪个级别,子菜单都是下拉式的 问题是,我只能通过“forFolder”标记显示与您处于同一级别的元素。或者我可以显示整个树(带有“treeForFolder”),但也可以显示到您所在的级别,例如,如果您位于子菜单2.
- 菜单1
- 菜单2
- 子菜单2.1
- 子菜单2.2
- 子菜单2.2.1
- 子菜单2.3
<cms:navigation type="treeForFolder" var="nav" startLevel="2" endLevel="5"/>
<ul class="nav navbar-nav">
<c:forEach items="${nav.items}" var="elem">
<li><a href="<cms:link>${elem.resourceName}</cms:link>" class="${clase}">${elem.navText}</a></li>
</c:forEach>
</ul>
我怎样才能达到我的目的?StartLevel和EndLevel参数不会更改任何内容,因为它将在当前导航级别之前显示
我想使用cms nav标签来完成,而不是直接通过java
提前谢谢 您可以对站点使用类型 像这样:
<cms:navigation type="forSite" startLevel="0" endLevel="3" var="nav"/>
看看API:
我不知道您是否还需要它(现在才找到),但这是我的导航菜单的代码,我想它也能帮助您:
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="org.opencms.jsp.*" pageEncoding="UTF-8"%>
<%@ 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"%>
<div id="subNav">
<cms:navigation var="nav" type="treeForFolder" startLevel="2" endLevel="5" />
<c:set var="oldLevel" value="" />
<c:forEach items="${nav.items }" var="element">
<c:set var="currentLevel" value="${ element.navTreeLevel}" />
<c:choose>
<c:when test="${empty oldLevel })"></c:when>
<c:when test="${currentLevel > oldLevel }">
<ul class="dropMenu">
</c:when>
<c:when test="${currentLevel == oldLevel }">
</li>
</c:when>
<c:when test="${currentLevel < oldLevel }">
<c:forEach begin="${currentLevel+1 }" end="${oldLevel }">
</li>
</ul>
</c:forEach>
</li>
</c:when>
</c:choose>
<c:choose>
<c:when
test="${fn:startsWith(cms.requestContext.uri, element.resourceName)}">
<c:set var="elementClass">activeNavigation</c:set>
</c:when>
<c:otherwise>
<c:set var="elementClass">default</c:set>
</c:otherwise>
</c:choose>
<c:set var="navText">${ element.navText}</c:set>
<c:if test="${empty navText or fn:contains(navText, '??? NavText') }">
<c:set var="navText">${element.title }</c:set>
</c:if>
<li><a class="${elementClass}" href="<cms:link>${element.resourceName}</cms:link>">${navText}</a>
<c:set var="oldLevel" value="${currentLevel }"></c:set>
</c:forEach>
<c:if test="${!empty oldLevel}">
</li>
</ul>
</c:if>
</div>
动态导航
违约
${element.navText}
${element.title}
此树的列表如下所示:
- 菜单1
- 菜单2
- 子菜单2.1
- 子菜单2.2
- 子菜单2.2.1
- 子菜单2.2.2
- 子菜单2.3