Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сложный web интерфейс в spring 
:(
    Опции темы
lando1
Дата 12.3.2009, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 30.4.2007

Репутация: нет
Всего: нет



решил использовать springMVC для веб приложения. 
Прочитал tutorial'ы на сайте - все понятно и красиво. 

Однако естественно в процессе разработки появились затруднения.

Нужно реализовать следующий интерфейс: 
есть логический блок. Пусть для простоты в нем поле для ввода и 2 кнопки - да и нет.

Таких одинаковых блоков на странице N штук в таблице. Как понять какая кнопка и в каком блоке была нажата при обработке запроса в контроллере?

Можно ли, например, такой логический блок реализовать в виде  jsp сегмента (jspf), выдать ему собственный контроллер, который бы обрабатывал нажатие на кнопку? Если да, то  smile  - у меня не получилось.
PM MAIL ICQ   Вверх
Samotnik
Дата 13.3.2009, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



Цитата(lando1 @  12.3.2009,  19:03 Найти цитируемый пост)
Как понять какая кнопка и в каком блоке была нажата при обработке запроса в контроллере?

проставь всем id  и потом javascript'ом  отправлять запросы на различные контроллеры
PM MAIL   Вверх
lando1
Дата 14.3.2009, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 30.4.2007

Репутация: нет
Всего: нет



а можно немного поподробнее про то как это сделать?

Цитата
проставь всем id  и потом javascript'ом  отправлять запросы на различные контроллеры


Это подразумевает под собой, что URL должны меняться? Если да, то становится еще более непонятно, т.к. априори неизвестно сколько таких блоков будет.

А если мне нужно оставаться в рамках одной страницы, например меняя только параметры request'a ?





Это сообщение отредактировал(а) lando1 - 14.3.2009, 18:25
PM MAIL ICQ   Вверх
Asal
Дата 16.3.2009, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 26.12.2006
Где: Минск

Репутация: 4
Всего: 7



А спринг бинд не подойдет ?


--------------------
PM MAIL ICQ   Вверх
XEugene
Дата 16.3.2009, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 1.1.2008

Репутация: 1
Всего: 2



Цитата(lando1 @  12.3.2009,  20:03 Найти цитируемый пост)

Можно ли, например, такой логический блок реализовать в виде  jsp сегмента (jspf), выдать ему собственный контроллер, который бы обрабатывал нажатие на кнопку? Если да, то - у меня не получилось. 
Вообще-то должно так получиться. Включаешь в страницу jsp с формами 
Код

<jsp:include page="/form.htm"/>

каждая со своим контроллером.  А success view для каждого из этих контроллеров - страница в которую включены формы. Должно работать.

PM MAIL   Вверх
Llucas
Дата 16.3.2009, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


J2EE Developer
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 29.11.2006
Где: Одесса

Репутация: нет
Всего: нет



Я бы прописал аттрибут name у кнопки и все. А на сервере ты можешь этот аттрибут вытащить.  И не надо никаких других контроллеров.
PM MAIL WWW   Вверх
Samotnik
Дата 18.3.2009, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



Цитата(lando1 @  14.3.2009,  17:19 Найти цитируемый пост)
а можно немного поподробнее про то как это сделать?

очень просто  smile 
Цитата(lando1 @  12.3.2009,  19:03 Найти цитируемый пост)
Как понять какая кнопка и в каком блоке была нажата при обработке запроса в контроллере?

Блок это <div> - ему  присвой id
первый блок id = 1111  
второй   id = 1112  и т.д.
и тоже самое с кнопочками. 
Потом это все парсиш JavaScript'ом  отправляешь на сервер, и там контролер будет обрабатывать запросы в зависимости от пришедшего id 
PM MAIL   Вверх
goodday1941
Дата 18.3.2009, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 709
Регистрация: 16.7.2006
Где: Украина, Киев

Репутация: нет
Всего: 9



lando1,  а Вам нужна инфа со всех блоков в реквесте или только с того в котором нажата кнопка? )



--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
mbasil
Дата 18.3.2009, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 399
Регистрация: 4.5.2007
Где: Москва

Репутация: 9
Всего: 13



А можно в каждый блок добавлять скрытое поле с одинаковым названием параметра.
На  приеме просто выбираешь значение параметра, пришедшее из скрытого поля.

Извините- написал и понял, что так не выйдет, поскольку форма одна. 

Это сообщение отредактировал(а) mbasil - 18.3.2009, 12:51
PM MAIL   Вверх
goodday1941
Дата 18.3.2009, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 709
Регистрация: 16.7.2006
Где: Украина, Киев

Репутация: нет
Всего: 9



где написано что форма одна?


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
goodday1941
Дата 18.3.2009, 13:38 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 709
Регистрация: 16.7.2006
Где: Украина, Киев

Репутация: нет
Всего: 9



если автор может пускай перейдет от абстрактной до более конкретной задачи )


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
lando1
Дата 18.3.2009, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 30.4.2007

Репутация: нет
Всего: нет



Цитата(goodday1941 @ 18.3.2009,  13:38)
если автор может пускай перейдет от абстрактной до более конкретной задачи )

можно - ничего секретного в этом нет.

Итак,

есть сущность - анкета(survey).
Кроме названия и других служебных полей она содержит массив сущностей - вопросы(question).

нужно сделать редактор анкеты. 

Выглядит он примерно так:
окно состоит из логических блоков - вопросов. 
Нажимаем на кнопку "редактировать"в блоке у конкретного вопроса  и этот блок становится редактируемым. Там меняем параметры и нажимаем в блоке кнопку "сохранить" - идет update выбранного вопроса.

мне бы хотелось, чтобы обработка такого запроса была на обновление вопроса шла на другой контроллер, чтобы не было "каши". 

Это сообщение отредактировал(а) lando1 - 18.3.2009, 17:03
PM MAIL ICQ   Вверх
goodday1941
Дата 18.3.2009, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 709
Регистрация: 16.7.2006
Где: Украина, Киев

Репутация: нет
Всего: 9



первое: очевидно что у тебя два контролера - первый обрабатывает верхнюю форму, второй таблицу с вопросами
первый реальзуешь с помощью SimpleFormController (сперва может показаться мутным, но на самом деле отличная штука), второй с помощью AbstractController или MultiActionController
второе: нижнюютаблицу можешь разбить на множество маленьких форм
третье: вью у обоих контроллеров будет одинаковым,

Добавлено @ 20:25
бросай по частям то что получается будем править  smile 

подумав, возник второй вариант:
все делать с помощью одного SimpleFormController... то есть все данные на странице одна большая форма.. второй вариант мне нравится больше... с валидацией меньше проблем

Это сообщение отредактировал(а) goodday1941 - 18.3.2009, 20:42


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
lando1
Дата 23.3.2009, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 30.4.2007

Репутация: нет
Всего: нет



goodday1941,  спасибо за помощь, постараюсь быстро выкладывать свои наработки.

у меня возник вопрос - обязательно использовать отдельные jsp страницы для блока вопросов. Можно, например, использовать tag file и связать их с отдельными контроллерами? 
Просто если использовать в качестве объектов встравки новые jsp, то их можно будет вызвать и отдельно, что для меня нежелательно.

я попробую пойти по пути вложенных контроллеров - мне кажется, что так будет сложнее и следовательно лучше пойму происходящее.

Это сообщение отредактировал(а) lando1 - 23.3.2009, 18:53
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0937 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.