是否有使用JSTL创建带导航链接的菜单的库或最佳实践方法?
我每页都有5个链接.我希望指向当前页面的链接被"禁用".我可以手动执行此操作,但这必须是人们之前处理过的问题.如果有一个taglib处理它但我不知道它,我不会感到惊讶.
您可以让JSTL/EL根据所请求的JSP页面的URL有条件地生成HTML/CSS.你可以${pageContext.request.servletPath}在EL中得到它.假设您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>
Run Code Online (Sandbox Code Playgroud)
或者当你刚刚参加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>
Run Code Online (Sandbox Code Playgroud)
您可以使用<jsp:include>在JSP页面中重用内容.将上面的内容放在自己的menu.jsp文件中,并按如下方式包含它:
<jsp:include page="/WEB-INF/menu.jsp" />
Run Code Online (Sandbox Code Playgroud)
该页面放在WEB-INF文件夹中以防止直接访问.