| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > сложный web интерфейс в spring |
| Автор: lando1 12.3.2009, 20:03 |
| решил использовать springMVC для веб приложения. Прочитал tutorial'ы на сайте - все понятно и красиво. Однако естественно в процессе разработки появились затруднения. Нужно реализовать следующий интерфейс: есть логический блок. Пусть для простоты в нем поле для ввода и 2 кнопки - да и нет. Таких одинаковых блоков на странице N штук в таблице. Как понять какая кнопка и в каком блоке была нажата при обработке запроса в контроллере? Можно ли, например, такой логический блок реализовать в виде jsp сегмента (jspf), выдать ему собственный контроллер, который бы обрабатывал нажатие на кнопку? Если да, то |
| Автор: lando1 14.3.2009, 18:19 | ||
а можно немного поподробнее про то как это сделать?
Это подразумевает под собой, что URL должны меняться? Если да, то становится еще более непонятно, т.к. априори неизвестно сколько таких блоков будет. А если мне нужно оставаться в рамках одной страницы, например меняя только параметры request'a ? |
| Автор: Asal 16.3.2009, 10:50 |
| А спринг бинд не подойдет ? |
| Автор: XEugene 16.3.2009, 11:22 | ||||
каждая со своим контроллером. А success view для каждого из этих контроллеров - страница в которую включены формы. Должно работать. |
| Автор: Llucas 16.3.2009, 12:47 |
| Я бы прописал аттрибут name у кнопки и все. А на сервере ты можешь этот аттрибут вытащить. И не надо никаких других контроллеров. |
| Автор: Samotnik 18.3.2009, 10:35 | ||
очень просто
Блок это <div> - ему присвой id первый блок id = 1111 второй id = 1112 и т.д. и тоже самое с кнопочками. Потом это все парсиш JavaScript'ом отправляешь на сервер, и там контролер будет обрабатывать запросы в зависимости от пришедшего id |
| Автор: goodday1941 18.3.2009, 12:49 |
| lando1, а Вам нужна инфа со всех блоков в реквесте или только с того в котором нажата кнопка? ) |
| Автор: mbasil 18.3.2009, 12:49 |
| А можно в каждый блок добавлять скрытое поле с одинаковым названием параметра. На приеме просто выбираешь значение параметра, пришедшее из скрытого поля. Извините- написал и понял, что так не выйдет, поскольку форма одна. |
| Автор: goodday1941 18.3.2009, 13:05 |
| где написано что форма одна? |
| Автор: goodday1941 18.3.2009, 13:38 |
| если автор может пускай перейдет от абстрактной до более конкретной задачи ) |
| Автор: lando1 18.3.2009, 16:55 | ||
можно - ничего секретного в этом нет. Итак, есть сущность - анкета(survey). Кроме названия и других служебных полей она содержит массив сущностей - вопросы(question). нужно сделать редактор анкеты. Выглядит он примерно так: окно состоит из логических блоков - вопросов. Нажимаем на кнопку "редактировать"в блоке у конкретного вопроса и этот блок становится редактируемым. Там меняем параметры и нажимаем в блоке кнопку "сохранить" - идет update выбранного вопроса. мне бы хотелось, чтобы обработка такого запроса была на обновление вопроса шла на другой контроллер, чтобы не было "каши". |
| Автор: goodday1941 18.3.2009, 20:24 |
| первое: очевидно что у тебя два контролера - первый обрабатывает верхнюю форму, второй таблицу с вопросами первый реальзуешь с помощью SimpleFormController (сперва может показаться мутным, но на самом деле отличная штука), второй с помощью AbstractController или MultiActionController второе: нижнюютаблицу можешь разбить на множество маленьких форм третье: вью у обоих контроллеров будет одинаковым, Добавлено @ 20:25 бросай по частям то что получается будем править подумав, возник второй вариант: все делать с помощью одного SimpleFormController... то есть все данные на странице одна большая форма.. второй вариант мне нравится больше... с валидацией меньше проблем |
| Автор: lando1 23.3.2009, 18:51 |
| goodday1941, спасибо за помощь, постараюсь быстро выкладывать свои наработки. у меня возник вопрос - обязательно использовать отдельные jsp страницы для блока вопросов. Можно, например, использовать tag file и связать их с отдельными контроллерами? Просто если использовать в качестве объектов встравки новые jsp, то их можно будет вызвать и отдельно, что для меня нежелательно. я попробую пойти по пути вложенных контроллеров - мне кажется, что так будет сложнее и следовательно лучше пойму происходящее. |