Восстановление 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

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