我有一些JSP页面,我想在其中包含一个HTML菜单(仅供参考:正在使用引导程序)。
我希望包含的菜单由三个项目组成,其代码如下所示。我想把它包含在jsp页面page1.jsp、page2.jsp和page3.jsp中。正如你所看到的,在这个例子中,页面1被高亮显示(设置为活动)。
如何使其动态,以便根据所使用的jsp页面突出显示正确的菜单项?
<ul class="nav nav-tabs" role="tablist">
<li class="active"><a href="#">Page 1</a></li>
<li><a href="#">Page 2</a></li>
<li><a href="#">Page 3</a></li>
</ul>发布于 2015-01-04 01:11:49
使用Scriptlet
您应该将实际页面存储到页面开头的变量中,如
<% String page = pageContext.getAttribute("page"); %>然后你可以这样做:
<li class="<% page.equals("page1") ? "active" : "" %>">Page 1</li>
<li class="<% page.equals("page2") ? "active" : "" %>">Page 2</li>
<li class="<% page.equals("page3") ? "active" : "" %>">Page 3</li>然而,在现代应用程序中使用scriptlet并不是很可取的做法,例如,您可以使用JSTL模板来制作动态页面。
使用JSTL模板
首先,我们导入核心JSTL标记库:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>在这里,我们将页面变量设置为page变量(它来自一个bean):
<c:set var="page" scope="session" value="${page}"/>最后,我们为变量设置一个条件:
<c:choose>
<c:when test="${page eq "page1"}">
<li class="active"><a href="#">Page 1</a></li>
</c:when>
<c:otherwise>
<li><a href="#">Page 1</a></li>
</c:otherwise>
</c:choose>如果您想这样做,我实际上并不完全推荐这种方法,因为它可以表达得更简洁,但是我自己并不是很了解JSTL。
一种更短但更脏的方法(我没有测试这个):
<li class="<c:if test="${page eq "page1"}">active</c:if>">
<a href="#">Page 1</a>
</li>https://stackoverflow.com/questions/27756485
复制相似问题