检查请求URL是当前页面,使菜单链接可以启用/禁用

如何检查,如果我在一个特定的网址? 我有许多链接的菜单,我想禁用链接当前页面。 我怎样才能做到这一点?

--------------解决方案-------------

要获得页面的当前URL,你可以使用:

Relative Path: <%= request.getServletPath() %>

你能否解释要如何禁用一些链接?

您可以使用HttpServletRequest#getRequestURI()获取请求URI。 该getServletPath()由其他答案建议不一定有用,因为它代表了servlet路径(在JSP / Servlet的URL模式匹配的部分),而不是请求URI(如终端用户在浏览器地址栏中看到)。 如果JSP是被一些前端控制器servlet转发,你会得到JSP的自己的道路,而不是在浏览器地址栏中的虚拟路径。

假设你有一个由所代表的菜单List<Page>在应用范围,其中Page类有urlname的属性,在这里与JSTL的帮助下开球例如:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
<ul id="menu">
<c:forEach items="${menu}" var="page">
<c:set var="active" value="${fn:endsWith(pageContext.request.requestURI, page.url)}" />
<li class="${active ? 'active' : 'none'}"><a href="${page.url}">${page.name}</a></li>
</c:forEach>
</ul>

然后,您可以通过定义菜单项的风格.active类。 比如给它一个黑色为主色调,高亮的一些背景等

ul#menu li {
background: white;
}

ul#menu li.active {
background: pink;
}

分类:JSP 时间:2015-03-16 人气:10
本文关键词: 菜单,JSP,网址
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.267 (s). 10 q(s)