Восстановление URL-адреса без параметра строки запросаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Восстановление URL-адреса без параметра строки запроса

Сообщение Anonymous »

Предположим, у меня есть страница со списком объектов и различными фильтрами для этого списка на боковой панели. В качестве примера рассмотрим эту страницу на ebuyer.com, которая выглядит следующим образом:
[img]https://i. sstatic.net/FLVj3.png[/img]

Эти фильтры слева управляются параметрами строки запроса, а ссылка для удаления одного из этих фильтров содержит URL-адрес текущей страницы, но без этого одного параметра строки запроса.
Есть ли в JSP способ легко создать эту ссылку «удалить»? То есть, есть ли быстрый способ воспроизвести текущий URL-адрес, но с удаленным одним параметром строки запроса, или мне нужно вручную перестроить URL-адрес, прочитав параметры строки запроса, добавив их к базовому URL-адресу и пропустив тот, который Я хочу пропустить?
Мой текущий план — сделать что-то вроде следующего метода доступным в качестве пользовательской функции EL:

Код: Выделить всё

    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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»