Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Обработка формы с помощью Spring MVC / 25 сообщений из 35, страница 1 из 2
16.05.2012, 13:56:55
    #37797036
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
Скажите пожалуйста, как обработать в контролере параметры запроса.
Например строка param[one]=Hello&param[two]=World
Т.е. получить Map<String,String>
...
Рейтинг: 0 / 0
16.05.2012, 13:57:48
    #37797039
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
param[one]=text2
param[two]=text1
и т.д.
...
Рейтинг: 0 / 0
16.05.2012, 19:32:02
    #37797726
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
Подскажете?
...
Рейтинг: 0 / 0
24.05.2012, 20:14:58
    #37810514
tepka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
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
25.05.2012, 03:47:51
    #37810805
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
Ответ достоин вопроса ))))))))))))))))
...
Рейтинг: 0 / 0
25.05.2012, 21:15:03
    #37812523
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
IDVsbruck, м) может быть) это можно сделать только через ModelAtribute?
Хочется получить Map<String,String>
...
Рейтинг: 0 / 0
26.05.2012, 01:10:17
    #37812666
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
Ну, можно примитивно "в лобешник" идти, чтобы не искать специализированные средства (в 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
26.05.2012, 02:41:46
    #37812685
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
IDVsbruck, вы не поняли что требуется. Мне НЕ нужно распарсить строку вида country=Russia&sity=Moscow.
Я писал и имел в виду строку вида допустим event[1]=blalala&event[2]=tralala&event[ololo]=trololo.
Тоесть получить Map<String,String> event , чтобы в ней были элементы с ключами "1","2","ololo" .
...
Рейтинг: 0 / 0
26.05.2012, 02:43:25
    #37812686
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
И как это сделать используя Spring MVC. Что-то же там точно есть для такого случая!
...
Рейтинг: 0 / 0
26.05.2012, 11:40:52
    #37812751
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
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
26.05.2012, 12:16:54
    #37812763
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
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
26.05.2012, 12:20:48
    #37812766
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
Может я не правильно задал вопрос в связи с этим непонимание. В spring можно получить List<String>, используя одинаковые имена полей и разные значения, типа event=trolol&event=ololo&event=tutu, получить List<STring> event.
Я же хочу не List, а Map.
...
Рейтинг: 0 / 0
26.05.2012, 12:40:40
    #37812777
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
rdm,
я сужу снаружи (архитектура) и на основе логики.
URL это по факту - параметры процедури или паремтры контроллёра.
Если параметр пуст, то он всё равно есть, но порсле равно ничего не стоит.
На каждую форму - свой собственный урл а-ля интерфейс с параметрами.
Это контракт на форму. Там не может быть динамических вещей. Они сохраняются навечно на рабочем столе юзверя.
imho
...
Рейтинг: 0 / 0
26.05.2012, 12:49:41
    #37812784
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
Petro123rdm,
я сужу снаружи (архитектура) и на основе логики.
URL это по факту - параметры процедури или паремтры контроллёра.
Если параметр пуст, то он всё равно есть, но порсле равно ничего не стоит.
На каждую форму - свой собственный урл а-ля интерфейс с параметрами.
Это контракт на форму. Там не может быть динамических вещей. Они сохраняются навечно на рабочем столе юзверя.
imho
Приведу пример) Допустим пользователь добавил в абстрактную корзину какое-то количество заказов и к каждому их должен добавить какую-то информацию, допустим некий текст.
Я представляю себе форму, где в виде таблице находятся все эти абстрактные заказы и рядом с каждым есть поле для ввода текста. Внизу формы кнопка "Сохранить". Т.е. задача, не редактировать(т.е. добавлять этот некий текст) к каждому заказу, а сделать все добавления сразу и сохранить. Это так сказать обязательно требование.
Я представляю что у каждого такого текстовое поля должно быть имя типа text['id заказа']=Текст.
Для этого собственно и было бы удобно получить в контролере Map и по ней пройтись.
...
Рейтинг: 0 / 0
26.05.2012, 12:58:49
    #37812787
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
rdmЯ представляю себе форму, где в виде таблице
URL это одно, Спринг - другое, Таблица - Третье.
- в url пишут другие вещи, чтобы страница открылась как при уходе юзверя с сайта. Т.е. не в твоём случае
- Спринг не имеет отношения к ГУИ. У него ограниченная область.
- Таблица - это уже ГУИ. У нормального компонента Таблица - своя связь с серверной БЛ по AJAX.

Т.е. каждый слой делает своё дело.
Я у себя на сайте отправляю по AJAX (post).
...
Рейтинг: 0 / 0
26.05.2012, 13:10:35
    #37812793
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
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
26.05.2012, 13:17:56
    #37812794
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
rdm,
нежизненный пример.
Ты не можешь дать в сети урл с примером?
Там же видно, кто как и каким транспортом отправляет.

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


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

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

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
26.05.2012, 14:34:44
    #37812840
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
Я так понимаю, ты пользуешься сервлетами (ну, или контроллерами, раз фигурирует Спринг).
Замапленый на веб-запрос метод получает ряд параметров, которые так или иначе сводятся только к двум - 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
26.05.2012, 15:15:25
    #37812871
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
IDVsbruck, мне просто казалось что в Spring MVC точно должно быть что-то вроде(относительно к данному примеру):
@RequestParam("goods") Map goods.
Из коробки разве нет такого? Потому что руками парсить это глупо.
По поводу json, мне кажется это тоже неверно. Я хочу передать параметры через POST, и обработать их на сервере. Зачем мне для этого json, если это должно решать без него.
...
Рейтинг: 0 / 0
26.05.2012, 15:27:06
    #37812884
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
Это форма Ulmart.ru, и там никакой json не используется. Я пример отрывок из реального происходящего POST запроса.
...
Рейтинг: 0 / 0
26.05.2012, 16:17:48
    #37812938
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
rdmЭто форма Ulmart.ru, и там никакой json не используется
как смотрел? Firebug стоит?
...
Рейтинг: 0 / 0
26.05.2012, 16:18:21
    #37812939
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
Petro123rdmЭто форма Ulmart.ru, и там никакой json не используется
как смотрел? Firebug стоит?
Да
...
Рейтинг: 0 / 0
26.05.2012, 16:20:51
    #37812944
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка формы с помощью Spring MVC
Стоит плагин liveHTTPHeaders в firefox
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Обработка формы с помощью Spring MVC / 25 сообщений из 35, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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