Как я могу определить часть URL и выходное значение, если условие соответствует?
Мне нужно создать специальное условие, если 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 и должен учиться на работе, поэтому я ценю ваше терпение и любую помощь, которую вы можете предложить. Спасибо, любезно.
1 ответ
Сначала вы захотите импортировать тег 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 для термина Search
,
Если полный URL запущенного скрипта был http://www.example.com/site/search.jsp
, затем responseURL
должен вернуться /site/search.jsp
, Приведенные выше примеры вернули бы true во втором случае, потому что "Поиск" находится в строке URI (первый потерпит неудачу из-за использования заглавных букв).
Он не включает параметры запроса, которые могут включать другую проверку.