如何检查JSP中的URL模式?

时间:2013-02-18 05:11:13

标签: java spring jsp tags

如何将当前页面网址与特定模式匹配。例如,我想使if语句在页面上显示或消失的if语句取决于当前JSP页面的URL模式。

我所知道的,我必须使用标签:

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

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

2 个答案:

答案 0 :(得分:0)

您可以使用

  

的HttpServletRequest#getRequestURI()

获取请求URI。

  

getServletPath()

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

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

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

<c:set var="active" value="${fn:endsWith(pageContext.request.requestURI, page.url)}" />

答案 1 :(得分: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>