2016-07-21 4 views
0

Я новичок в Spring MVC и у меня возникла следующая проблема: у меня есть раскрывающийся список в JSP, который заполняется из атрибута (извлеченного из модели) Я установил контроллер. У меня также есть поле ввода, которое пользователь может использовать для добавления новой опции в раскрывающийся список.Spring MVC- Изменение/изменение атрибутов модели/сеанса динамически

Я использую jquery ajax для отправки значения, введенного в поле ввода, в обработчик контроллера, проверки его и добавления его в модель. Как только это будет сделано, я хотел бы, чтобы раскрывающийся список обновлялся с этим новым значением, без обновления страницы. Я понимаю, что это можно сделать, используя jquery (добавление обновленного списка к элементу select), но предпочел бы это сделать, изменив атрибут, который заполняет выпадающий список, если это возможно.

Я попытался использовать 'session.setAttribute ("mykey", "listofvalues") в обработчике контроллера, который создает представление и $ {mykey} в элементе выбора jsp для его извлечения, все работает нормально. Затем я получил атрибут session в обработчике, который добавляет новое значение в список. Но даже после обновления атрибута в контроллере выпадающий список jsp все еще показывал старый список.

Я делаю что-то неправильно? Все, что я хочу сделать, это добавить новые элементы в раскрывающийся список на одной странице без перенаправления/обновления страницы. Есть ли способ изменить атрибут сеанса или модели и увидеть изменение в jsp динамически?

Спасибо.

ответ

0

Ну, ответ yes и no.

Yes Вы можете динамически изменять или добавлять или удалять значения из объекта сеанса.

No Вы не можете повторно отобразить страницу после ее рендеринга.

Страница jsp отображается во время выполнения, а затем отправляется обратно на клиентскую машину. Все renderig уже выполнены. Поэтому, даже если вы измените данные сеанса, оно не будет отражено до обновления вашей страницы.

Все, что вы можете сделать - это отправить вызов AJAX и обновить DOM с помощью jquery.

+0

Спасибо, что имеет смысл. Просто, чтобы быть уверенным, есть ли другой способ динамического связывания, который может быть достигнут, чтобы изменения в атрибуте в контроллере динамически отражались в представлении? Любая другая библиотека/структура, которая позволяет нам делать это вообще? – CoolCommando

+0

ну, насколько мне известно, также не может быть, так как это данные на сервере и на стороне клиента. любая операция сервера не может изменить код на стороне клиента –

Смежные вопросы