如何检查我是否在特定 URL 上?我有一个包含许多链接的菜单,我想禁用当前页面的链接。我怎样才能做到这一点?
最佳答案
您可以使用 HttpServletRequest#getRequestURI()
获取请求URI。 getServletPath()
正如另一个答案所建议的那样,它不一定有帮助,因为它代表 servlet 路径(JSP/Servlet URL 模式中的匹配部分),而不是请求 URI(如最终用户在浏览器地址栏中看到的那样)。如果 JSP 由某个前端 Controller servlet 转发,您将获得 JSP 自己的路径,而不是浏览器地址栏中的虚拟路径。
假设您有一个由 List<Page>
表示的菜单。在应用范围内Page
类(class)有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
定义菜单项样式。类(class)。例如。给它一个黑色,一些突出背景等。ul#menu li {
background: white;
}
ul#menu li.active {
background: pink;
}
关于jsp - 检查请求 URL 是否针对当前页面,以便可以启用/禁用菜单链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6658667/