【发布时间】:2010-12-03 13:56:47
【问题描述】:
我正在设计一个使用 jsp 页面的应用程序。现在我需要一些东西来指示正在显示的当前页面。基本上,我想要一个包含每个页面的菜单,我在当前页面上放置 class=”active”。
我该怎么做?有什么建议么? 谢谢!
【问题讨论】:
我正在设计一个使用 jsp 页面的应用程序。现在我需要一些东西来指示正在显示的当前页面。基本上,我想要一个包含每个页面的菜单,我在当前页面上放置 class=”active”。
我该怎么做?有什么建议么? 谢谢!
【问题讨论】:
启动示例:
<c:set var="currentPage" value="${fn:substring(pageContext.request.servletPath, 1, -1)}" />
<ul>
<c:forEach items="${bean.menu}" var="item">
<li><a href="${item.link}"${item.link == currentPage ? ' class="active"' : ''}>${item.name}</li>
</c:forEach>
</ul>
这假定${bean.menu} 是List<Menu>,Menu 是具有link 和name 属性的bean,${item.link} 返回路径名,如home.jsp、contact.jsp(或如果您使用的是控制器 servlet,home、contact 等)。
fn:substring() 去掉了前导斜线。 EL 中的条件运算符?: 仅在条件为真时打印类,否则不打印。
【讨论】:
你应该得到当前的 URL
<% String URL = request.getRequestURL(); %>
然后在菜单中,如果当前 URL(或从 url 检索“当前页面”)与您的菜单元素(按标题、ID...)匹配,则可以在元素上设置 class="active"想要“活跃”
【讨论】: