. Содержит URL -адрес текущей страницы, но без одного параметра строки запроса. То есть, есть ли быстрый способ воспроизвести текущий URL -адрес, но с удаленным параметром строки одного запроса, или мне приходится вручную перестроить URL, прочитав параметры строки запроса, добавив их в базовый URL и пропустив тот, который я хочу оставить?
Код: Выделить всё
public String removeQueryStringParameter(
HttpServletRequest request,
String paramName,
String paramValue) throws UnsupportedEncodingException {
StringBuilder url = new StringBuilder(request.getRequestURI());
boolean first = true;
for (Map.Entry param : request.getParameterMap().entrySet()) {
String key = param.getKey();
String encodedKey = URLEncoder.encode(key, "UTF-8");
for (String value : param.getValue()) {
if (key.equals(paramName) && value.equals(paramValue)) {
continue;
}
if (first) {
url.append('?');
first = false;
} else {
url.append('&');
}
url.append(encodedKey);
url.append('=');
url.append(URLEncoder.encode(value, "UTF-8"));
}
}
return url.toString();
}
Подробнее здесь: https://stackoverflow.com/questions/350 ... -parameter