powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Обработка формы с помощью Spring MVC
35 сообщений из 35, показаны все 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
Обработка формы с помощью Spring MVC
    #37812964
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdm,
в озоне при пересчёте корзины-цены ничего не происходит, на копку OK - перерисовка всей формы корзины на:
http://www.ozon.ru/default.aspx?context=cart
- внутри этого запроса вкладка: POST там параметры корзины.
Т.е. покопай, поисследуй разные варианты. Напрогить изврат всегда успеешь.
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812973
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, на их сайте действительно идет отправка таким дибильным способом: action=goNext&goodsId=&step=show&isCredit=0&isCredit2=0&isConditioner=0&conditionerSetupAddress=&isAuth=1&authLogin=&authPass=&chFullname=&chPhone=&isDraft=0&add_mobile=&goods%5B236019_%5D%5Bquantity%5D=1&goods%5B283667_%5D%5Bquantity%5D=1

Настолько узкоспециализированных "примочек" в спринге нет и быть не может - это работа с контентом и почему в нее должен вклиниваться спринг, непонятно. Не приходит же параметр с именем goods - массив, у которого индекс "236019_" (даже не 236019), и второй "quantity". А пришел параметр с именем "goods[236019_][quantity]", который тебе и показывается. Похоже, ты родом из ПэХаПэ, где что-то подобное есть. А учитывая, что получить тот самый искомый меп, у которого были бы сгруппированы значения по известному тебе закону, это 5-8 строк кода, в чем вопрос в принципе? Спринг (MVC) - гораздо глобальная штука и не отвечает на все вопросы, возникающие в программировании.

А что до сайта, то не смотри на их реализацию. Это нерационально. Хотя это их реализация и они решают свои проблемы по-своему (явно на ПэХаПэ, где есть схожий функционал для вычленения параметров).
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812974
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- Либо статика параметров и клеишь их столько сколько нужно. Хоть 100 штук
- Либо уже JSON формат, например, для передачи с клиента. Но уже нужно больше кода на клиенте в динамике (JS)

оно?
http://www.cribbstechnologies.com/2011/04/08/spring-mvc-ajax-web-services-part-2-attack-of-the-json-post/
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812978
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckДа, на их сайте действительно идет отправка таким дибильным способом: action=goNext&goodsId=&step=show&isCredit=0&isCredit2=0&isConditioner=0&conditionerSetupAddress=&isAuth=1&authLogin=&authPass=&chFullname=&chPhone=&isDraft=0&add_mobile=&goods%5B236019_%5D%5Bquantity%5D=1&goods%5B283667_%5D%5Bquantity%5D=1

Настолько узкоспециализированных "примочек" в спринге нет и быть не может - это работа с контентом и почему в нее должен вклиниваться спринг, непонятно. Не приходит же параметр с именем goods - массив, у которого индекс "236019_" (даже не 236019), и второй "quantity". А пришел параметр с именем "goods[236019_][quantity]", который тебе и показывается. Похоже, ты родом из ПэХаПэ, где что-то подобное есть. А учитывая, что получить тот самый искомый меп, у которого были бы сгруппированы значения по известному тебе закону, это 5-8 строк кода, в чем вопрос в принципе? Спринг (MVC) - гораздо глобальная штука и не отвечает на все вопросы, возникающие в программировании.

А что до сайта, то не смотри на их реализацию. Это нерационально. Хотя это их реализация и они решают свои проблемы по-своему (явно на ПэХаПэ, где есть схожий функционал для вычленения параметров).

Почему же в Spring сделали @RequestParam(value="myParam[]") String[] myParams для
Код: html
1.
2.
<input type="checkbox" name="myParam[]" value="myVal1" />
<input type="checkbox" name="myParam[]" value="myVal2" />



А этого не сделали? Ведь по пусти это просто 2-мерный массив? По аналогии нельзя чтоли было сделать?
@RequestParam(value="myParam[][]") String[][] myParams
Согласен, что PHP простые вещи делаются просто и понятно. Там не надо писать 5-8 строк кода.
Почему же не добавить такую функциональность в Spring.
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812980
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruck, и я думаю, что тут http://www.ultima.ru/ знают что делают)
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812984
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, что-то похожее.
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812986
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdmСогласен, что PHP простые вещи делаются просто и понятно. Там не надо писать 5-8 строк кода.
Почему же не добавить такую функциональность в Spring.
С кем ты согласен? Я бы стрелял за эти "просто и понятно".
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37812990
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckrdmСогласен, что PHP простые вещи делаются просто и понятно. Там не надо писать 5-8 строк кода.
Почему же не добавить такую функциональность в Spring.
С кем ты согласен? Я бы стрелял за эти "просто и понятно".
И что мешает? )
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37813000
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего. Зайди в раздел "HTML, JavaScript, CSS, VBScript" и опубликуй какой-нибудь код с элементами ПэХаПэ ... увидишь ))
...
Рейтинг: 0 / 0
Обработка формы с помощью Spring MVC
    #37813003
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckНичего. Зайди в раздел "HTML, JavaScript, CSS, VBScript" и опубликуй какой-нибудь код с элементами ПэХаПэ ... увидишь ))
Я просто не понимаю причем тут PHP) Речь шла про обработку форм в Spring MVC.
Предлагаю закрыть тему)
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Обработка формы с помощью Spring MVC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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