如何检查我是否在特定的URL上?我有一个包含许多链接的菜单,我想禁用当前页面的链接。我怎样才能做到这一点呢?
发布于 2011-07-12 09:48:25
要获取页面的当前URL,您可以使用:
Relative Path: <%= request.getServletPath() %>你能详细说明你想如何禁用一些链接吗?
发布于 2011-07-12 15:18:58
您可以使用HttpServletRequest#getRequestURI()获取请求URI。另一个答案所建议的getServletPath()不一定有帮助,因为它表示servlet路径( JSP/Servlet URL模式中的匹配部分),而不是请求URI (正如终端用户在浏览器地址栏中看到的那样)。如果JSP是由某个前端控制器servlet转发的,那么您将获得JSP自己的路径,而不是浏览器地址栏中的虚拟路径。
假设您在应用程序范围内有一个由List<Page>表示的菜单,其中Page类具有url和name属性,下面是一个借助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;
}https://stackoverflow.com/questions/6658667
复制相似问题