0

如何将当前页面 URL 与特定模式匹配。例如,我想根据当前 JSP 页面的 URL 模式做出使页面上某个区域出现或消失的 if 语句。

据我所知,我必须使用标签:

<c:if test="the conditional test">Region</c:if>

例如,如果 URL 的结尾与 /me/* 匹配,我希望该区域出现?

4

2 回答 2

0

您可以使用

HttpServletRequest#getRequestURI()

获取请求 URI。这

获取ServletPath()

正如其他答案所建议的那样不一定有用,因为它代表 servlet 路径(JSP/Servlet URL 模式中的匹配部分),而不是请求 URI(最终用户在浏览器地址栏中看到)。如果 JSP 由某个前端控制器 servlet 转发,您将获得 JSP 自己的路径,而不是浏览器地址栏中的虚拟路径。

假设您有一个由应用程序范围内的 List 表示的菜单,其中 Page 类具有 url 和 name 属性

,您可以使用此代码查找当前页面 url,然后执行您的任务

<c:set var="active" value="${fn:endsWith(pageContext.request.requestURI, page.url)}" />
于 2013-02-18T05:35:55.893 回答
0

类似于以下内容:

<c:set var="url" value="${pageContext.request.requestURL}" />

<c:set var="pathinfo" value="${fn:split(url, '/')}" />
<c:set var="pathnode" value="${pathinfo[pathinfo.length - 1]}" />

<c:if test="${pathnode == 'me'}">
   <p>Show this region</p>
</c:if>
于 2013-02-18T07:37:52.027 回答