使用JSTL创建带有导航链接的菜单

时间:2011-05-08 14:19:28

标签: jsp menu jstl

是否有使用JSTL创建带导航链接的菜单的库或最佳实践方法?

每页都有5个链接。我希望指向当前页面的链接被“禁用”。我可以手动执行此操作但这必须是人们之前处理过的问题。如果有一个taglib处理它但我不知道它,我不会感到惊讶。

1 个答案:

答案 0 :(得分:8)

您可以让JSTL / EL根据所请求的JSP页面的URL有条件地生成HTML / CSS。您可以在EL中通过${pageContext.request.servletPath}获取它。假设您在应用程序范围内的某些Map<String, String>中有链接:

<ul id="menu">
    <c:forEach items="${menu}" var="item">
        <li>
            <c:choose>
                <c:when test="${pageContext.request.servletPath == item.value}">
                    <b>${item.key}</b>
                </c:when>
                <c:otherwise>
                    <a href="${item.value}">${item.key}</a>
                </c:otherwise>
            </c:choose>
        </li>
    </c:forEach>
</ul>

或者当你刚刚参加CSS课程

之后
<ul id="menu">
    <c:forEach items="${menu}" var="item">
        <li><a href="${item.value}" class="${pageContext.request.servletPath == item.value ? 'active' : 'none'}">${item.key}</a></li>
    </c:forEach>
</ul>

您可以使用<jsp:include>重用JSP页面中的内容。将上面的内容放在自己的menu.jsp文件中,并按如下方式包含它:

<jsp:include page="/WEB-INF/menu.jsp" />

该页面位于WEB-INF文件夹中,以防止直接访问。