0

如果浏览器地址栏中的页面 URL 以“搜索”结尾,我需要创建一个特殊条件。到目前为止,在我的 .jpsf 文件中,我有以下代码:

<c:choose>
    <c:when test="${SOMETHINGHERE eq 'Search'}">
        <c:out value="Search" />
    </c:when>
    <c:otherwise>
        <c:out value="${topCat}" />|<c:out value="${subCatA}" />|<c:out value="${subCatB}" />|<c:out value="${subCatC}" />
    </c:otherwise>
</c:choose>

我可以在该SOMETHINGHERE部分中放置什么来检测 URL 是否包含搜索字词?浏览此处的帖子并在 Google 上搜索并没有让我找到任何有效的答案。

我也尝试添加<% String currentPDP = request.getParameter("search")%> ,但它返回了 500 错误,可能是因为 _Search 没有正确设置为参数(它在 URL 的末尾硬编码)并且代码格式不正确。

我是 JSP 的新手,必须在工作中学习,所以我感谢您的耐心和您可以提供的任何帮助。非常感谢你。

4

1 回答 1

0

首先,您要导入 Functions 标记:

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

然后,您可以使用:

${fn:contains(pageContext.request.requestURI, 'Search')}

或者,如果你不关心这个案子

${fn:containsIgnoreCase(pageContext.request.requestURI, 'Search')}

这将允许您通过 URI 搜索 term Search

如果运行脚本的完整 url 是http://www.example.com/site/search.jsp,那么responseURL应该返回/site/search.jsp。上面的示例在第二种情况下将返回 true,因为 'Search' 在 URI 字符串中(第一种情况由于大写而失败)。

它不包括查询参数,这将涉及不同的检查。

于 2012-10-03T20:14:32.887 回答