| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > проблема с возвращаемыми данными из контроллера |
| Автор: vovs 20.9.2010, 14:53 | ||||||||||||
| Здравствуйте! есть такая проблема: Сначала вступление: написал приложение имитирующее проверку знаний. По-простому - это страничка с вопросом и несколькими вариантами ответов. обмен данными с сервером происходит с помощью ajax'а. вот кусок контроллера, который формирует вопрос и варианты ответа:
вот test.jsp:
после выбора варианта ответа я нажимаю на кнопочку "Дальше", данные уходят в ajax'е на контроллер, где готовится новый вопрос и ответы и возвращается результат(у меня получается это
"запихывается" в
После всех этих действий у меня на сранице появляется вторая кнопочка "Таймер". Одна из них активная - позволяет прятать и показывать DIV c обратным отсчетом, другая же ни на какие действия не отзывается и исчезает если обновить страницу. Как можно сделать, чтобы эта "мнимая" кнопка не появлялась? вот картинки: До нажатия на "Дальше": ![]() После ответа на вопрос: ![]() Я думаю, что кнопка появляется из-за того, что у меня в контейнер
а нужно сделать наверное чтобы туда писалась только лишь форма. если это так, подскажите, как можно реализовать это.. |
| Автор: iluvatar 20.9.2010, 15:06 |
| Не до конца разобрался что вы бросаете в div id="content" и зачем? По идее должно быть так 1. Рисуете страницу с первым вопросом 2. По нажатию на "далее": сохраняете результат (лучше в переменной js) шлете запрос на следующий вопрос 3а. Есть следующий вопрос перерисовываете форму вопроса в соответствии с присланной с сервера информации обновляете таймер (если нужно) при нажатии на "далее" идем на пункт 2 3б. Нет следующего вопроса шлем информацию о всех ответах на сервер получаем и отображаем результат теста Если вопросы смешаны, то сохраняем не только вариант ответа, но и id вопроса. Или я что-то не так понял? Зачем вам вообще формы? |
| Автор: vovs 20.9.2010, 15:42 |
| В div id="content" у меня бросается модель данных (ModelAndView) вопрос и ответы для него, но, так как имя представления test(return new ModelAndView("test", modelMap);)? то в контейнер div id="content" помещается ВСЯ страница test.htm.. Получается как бы страница в странице... Мне же нужно чтобы контроллер отправлял только вопрос и ответы для него, то есть два объекта - объект Вопрос и объект Ответы... |
| Автор: iluvatar 20.9.2010, 16:10 |
| Ну, откуда нам знать в каких классах у вас могут храниться вопросы и ответы. Что вообще такое ModelAndView? ajax должен получить ответ в виде xml или json. Вы на стороне клиента должны его распарсить и что-то сделать с этими данными. В вашем случае это вставить в нужные теги нужные значения. Добавлено через 1 минуту и 54 секунды либо возвращайте сформированную в контроллере строку, содержащую только нужные вам элементы Добавлено через 2 минуты и 6 секунд но это некрасивое решение |
| Автор: vovs 24.9.2010, 20:19 |
| 2iluvatar http://www.jarvana.com/jarvana/view/org/springframework/spring/1.2.9/spring-1.2.9-javadoc.jar!/org/springframework/web/servlet/ModelAndView.html - модель + представление --- то, что возвращают методы контроллера в SpringMVC Я работал с ModelAndView поэтому и использую. Благодарю за Ваш совет. Наверное вы предлагаете оптимальный вариант. |