首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >包括具有突出显示正确菜单项的HTML菜单

包括具有突出显示正确菜单项的HTML菜单
EN

Stack Overflow用户
提问于 2015-01-03 23:37:10
回答 1查看 298关注 0票数 0

我有一些JSP页面,我想在其中包含一个HTML菜单(仅供参考:正在使用引导程序)。

我希望包含的菜单由三个项目组成,其代码如下所示。我想把它包含在jsp页面page1.jsp、page2.jsp和page3.jsp中。正如你所看到的,在这个例子中,页面1被高亮显示(设置为活动)。

如何使其动态,以便根据所使用的jsp页面突出显示正确的菜单项?

代码语言:javascript
运行
复制
<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>
EN

回答 1

Stack Overflow用户

发布于 2015-01-04 01:11:49

使用Scriptlet

您应该将实际页面存储到页面开头的变量中,如

代码语言:javascript
运行
复制
<% String page = pageContext.getAttribute("page"); %>

然后你可以这样做:

代码语言:javascript
运行
复制
<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标记库:

代码语言:javascript
运行
复制
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

在这里,我们将页面变量设置为page变量(它来自一个bean):

代码语言:javascript
运行
复制
<c:set var="page" scope="session" value="${page}"/>

最后,我们为变量设置一个条件:

代码语言:javascript
运行
复制
<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。

一种更短但更脏的方法(我没有测试这个):

代码语言:javascript
运行
复制
<li class="<c:if test="${page eq "page1"}">active</c:if>">
    <a href="#">Page 1</a>
</li>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27756485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档