powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Обработка формы с помощью Spring MVC
25 сообщений из 35, страница 1 из 2
Обработка формы с помощью Spring MVC
    #37797036
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажите пожалуйста, как обработать в контролере параметры запроса.
Например строка param[one]=Hello&param[two]=World
Т.е. получить Map<String,String>
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37797039
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
param[one]=text2
param[two]=text1
и т.д.
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37797726
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажете?
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37810514
tepka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdm,

Код: java
1.
2.
3.
4.
5.
6.
@RequestMapping(value = "/somthing/index.html", method=RequestMethod.POST)
    protected String accountIndexForm(HttpServletRequest request, HttpServletResponse response) {
        Map myMap = request.getParameterMap();
        System.out.println(myMap);
        return "somthingElse";
    }
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37810805
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ответ достоин вопроса ))))))))))))))))
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812523
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruck, м) может быть) это можно сделать только через ModelAtribute?
Хочется получить Map<String,String>
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812666
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, можно примитивно "в лобешник" идти, чтобы не искать специализированные средства (в Commons):
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
private Map<String, String> parseURLQuery(String query) {
	Map<String, String> result = new HashMap<String,String>();
	String params[] = query.split("&");
	for (String param : params) {
		String temp[] = param.split("=");
		try {
			result.put(temp[0], URLDecoder.decode(temp[1], "UTF-8"));
		} catch (UnsupportedEncodingException e) {}
	}
	return result;
}
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812685
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruck, вы не поняли что требуется. Мне НЕ нужно распарсить строку вида country=Russia&sity=Moscow.
Я писал и имел в виду строку вида допустим event[1]=blalala&event[2]=tralala&event[ololo]=trololo.
Тоесть получить Map<String,String> event , чтобы в ней были элементы с ключами "1","2","ololo" .
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812686
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как это сделать используя Spring MVC. Что-то же там точно есть для такого случая!
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812751
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdmIDVsbruck, вы не поняли что требуется. Мне НЕ нужно распарсить строку вида country=Russia&sity=Moscow.
Я писал и имел в виду строку вида допустим event[1]=blalala&event[2]=tralala&event[ololo]=trololo.
Тоесть получить Map<String,String> event , чтобы в ней были элементы с ключами "1","2","ololo" .
я IMHO таких строк в сети не видел. Зачем их упаковывать в Усложнённый формат?
"Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн.
AutoPOI.ru — ГИС-технологии для Oracle
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812763
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123rdmIDVsbruck, вы не поняли что требуется. Мне НЕ нужно распарсить строку вида country=Russia&sity=Moscow.
Я писал и имел в виду строку вида допустим event[1]=blalala&event[2]=tralala&event[ololo]=trololo.
Тоесть получить Map<String,String> event , чтобы в ней были элементы с ключами "1","2","ololo" .
я IMHO таких строк в сети не видел. Зачем их упаковывать в Усложнённый формат?
"Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн.
AutoPOI.ru — ГИС-технологии для Oracle

Ну а как вы сделаете обработку формы с переменным количеством скажем полей ввода, у каждого из которых свой уникальный идентификатор?
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812766
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я не правильно задал вопрос в связи с этим непонимание. В spring можно получить List<String>, используя одинаковые имена полей и разные значения, типа event=trolol&event=ololo&event=tutu, получить List<STring> event.
Я же хочу не List, а Map.
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812777
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdm,
я сужу снаружи (архитектура) и на основе логики.
URL это по факту - параметры процедури или паремтры контроллёра.
Если параметр пуст, то он всё равно есть, но порсле равно ничего не стоит.
На каждую форму - свой собственный урл а-ля интерфейс с параметрами.
Это контракт на форму. Там не может быть динамических вещей. Они сохраняются навечно на рабочем столе юзверя.
imho
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812784
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123rdm,
я сужу снаружи (архитектура) и на основе логики.
URL это по факту - параметры процедури или паремтры контроллёра.
Если параметр пуст, то он всё равно есть, но порсле равно ничего не стоит.
На каждую форму - свой собственный урл а-ля интерфейс с параметрами.
Это контракт на форму. Там не может быть динамических вещей. Они сохраняются навечно на рабочем столе юзверя.
imho
Приведу пример) Допустим пользователь добавил в абстрактную корзину какое-то количество заказов и к каждому их должен добавить какую-то информацию, допустим некий текст.
Я представляю себе форму, где в виде таблице находятся все эти абстрактные заказы и рядом с каждым есть поле для ввода текста. Внизу формы кнопка "Сохранить". Т.е. задача, не редактировать(т.е. добавлять этот некий текст) к каждому заказу, а сделать все добавления сразу и сохранить. Это так сказать обязательно требование.
Я представляю что у каждого такого текстовое поля должно быть имя типа text['id заказа']=Текст.
Для этого собственно и было бы удобно получить в контролере Map и по ней пройтись.
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812787
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdmЯ представляю себе форму, где в виде таблице
URL это одно, Спринг - другое, Таблица - Третье.
- в url пишут другие вещи, чтобы страница открылась как при уходе юзверя с сайта. Т.е. не в твоём случае
- Спринг не имеет отношения к ГУИ. У него ограниченная область.
- Таблица - это уже ГУИ. У нормального компонента Таблица - своя связь с серверной БЛ по AJAX.

Т.е. каждый слой делает своё дело.
Я у себя на сайте отправляю по AJAX (post).
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812793
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, как бы вы обработали такую форму? Сто раз делали AJAX запрос?

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<form action="action"  method="POST" >
            
        

                <textarea name="description[1]">Текст1</textarea>
                <textarea name="description[2]">Текст2</textarea>
                <textarea name="description[3]">Текст3</textarea>
                <textarea name="description[4]">Текст4</textarea>
		...
                 <textarea name="description[100]">Текст4</textarea>
        
        
        <input  type="submit" value="Сохранить" />
        
        </form>
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812794
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdm,
нежизненный пример.
Ты не можешь дать в сети урл с примером?
Там же видно, кто как и каким транспортом отправляет.

100 одинаковых контролов не делают 100 раз Контрол.Create()
На дворе 3 тысячилетие. Найди пример!
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812804
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, В форме есть например такое
Код: html
1.
<input name="goods[273468][quantity]" type="text">


Там общая же кнопка "Пересчитать", а "Кол-во" можно менять у всех заказов.

...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812810
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запрос идет такой:

goods%5B259892_%5D%5Bquantity%5D=10&goods%5B301177_%5D%5Bquantity%5D=1&goods%5B301171_%5D%5Bquantity%5D=1&goods%5B301165_%5D%5Bquantity%5D=1&goods%5B301184_%5D%5Bquantity%5D=1
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812840
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понимаю, ты пользуешься сервлетами (ну, или контроллерами, раз фигурирует Спринг).
Замапленый на веб-запрос метод получает ряд параметров, которые так или иначе сводятся только к двум - request и response.
У request (HttpServletRequest) есть метод getParamerNames, где ты получаешь коллекцию имен полученных параметров (типа Enumeration). Что мешает получить ВСЕ имена параметров, а в цикле проверять эти параметры на предмет принадлежности к, скажем, goods[XXX][XXX]? Думаю, проанализировав, что пришедший параметр начинается на "goods[", не составит труда получить значения в квадратных скобках?

Хорошо, что ты перешел от гипотетики в постановке вопроса к иллюстрированию. Архитектура построения обработки формы на странице у тебя неправильная. Судя по морде, понятно, что страница без js работать не будет, поэтому было бы правильно, чтобы ты упаковывал запрос скриптом, например, в JSON-объект, и передавал его на сервер. Скажем, весь твой запрос должен трансформироваться в http://address?param={goods:{259892:10, 301177:1, 301171:1, 301165:1, 301184:1}} (понятно, что реально отправка должна быть POST'ом, это лишь иллюстрация). И структура может быть своей, не обязательно JSON, можно текстом, можно XML. Суть - упростить структуру для рациональной отправки и обработки на сервере.
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812871
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruck, мне просто казалось что в Spring MVC точно должно быть что-то вроде(относительно к данному примеру):
@RequestParam("goods") Map goods.
Из коробки разве нет такого? Потому что руками парсить это глупо.
По поводу json, мне кажется это тоже неверно. Я хочу передать параметры через POST, и обработать их на сервере. Зачем мне для этого json, если это должно решать без него.
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812884
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это форма Ulmart.ru, и там никакой json не используется. Я пример отрывок из реального происходящего POST запроса.
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812938
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdmЭто форма Ulmart.ru, и там никакой json не используется
как смотрел? Firebug стоит?
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812939
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123rdmЭто форма Ulmart.ru, и там никакой json не используется
как смотрел? Firebug стоит?
Да
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812944
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стоит плагин liveHTTPHeaders в firefox
...
Рейтинг: 0 / 0
25 сообщений из 35, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Обработка формы с помощью Spring MVC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]