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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Struts+DynaValidatorForm, Установка значений полей формы 
V
    Опции темы
ne3x
Дата 10.1.2008, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Возникла проблема. Нужно из action  заполнить поля формы для редактирования.
Проблема такая же, как и в топике Похожая проблема
Цитата

tux
Спасибо. Разобрался.
Все точно как ты сказал. Для Action, который инициализирует форму, в struts-config форму явно не указываю, а создаю её внутри execute() и кладу в соответствующий scope.  

Отличие в том, что у меня импользуется DynaValidatorForm, т.е. конструктором ее в action не создать.
Подскажите, пожалуйста, как быть, и как в scope положить созданную форму? Пока придумал только объект с данными положить в сессию и в JSP заполнять значение. Но все должно быть проще.
PM MAIL   Вверх
brejnev
Дата 10.1.2008, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Допустим у тебя есть экшн CallMyPageAction, который вызывает( или как правильно сказать?) страничку MyPage, на которой нужно заполнить некое поле "myText". 

CallMyPageAction
Код

 String message = "Hello";
 DynaBean dynaBean = (DynaBean)form;
 dynaBean.set("myText", message);

PM MAIL   Вверх
ne3x
Дата 10.1.2008, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(brejnev @ 10.1.2008,  16:59)
Допустим у тебя есть экшн CallMyPageAction, который вызывает( или как правильно сказать?) страничку MyPage, на которой нужно заполнить некое поле "myText". 

CallMyPageAction
Код

 String message = "Hello";
 DynaBean dynaBean = (DynaBean)form;
 dynaBean.set("myText", message);

Так делал
Мой код:
EditAction
Код

 String message = "Hello";
 DynaValidatorForm dvf = (DynaValidatorForm)form;
 dvf.set("myText", message);

Но дело в том, что параметр form передается со значением null, т.к. action вызывается со странички без формы по ссылке типа ...edit.do?id=7
Поэтому вылетает с ошибкой, потому как dvf тоже null
PM MAIL   Вверх
tux
Дата 10.1.2008, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

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



Цитата(ne3x @  10.1.2008,  16:31 Найти цитируемый пост)
Отличие в том, что у меня импользуется DynaValidatorForm, т.е. конструктором ее в action не создать.

Как это? А Struts ее как создает?
PM MAIL Skype GTalk Jabber YIM   Вверх
brejnev
Дата 10.1.2008, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(ne3x @ 10.1.2008,  17:16)
Но дело в том, что параметр form передается со значением null, т.к. action вызывается со странички без формы по ссылке типа ...edit.do?id=7
Поэтому вылетает с ошибкой, потому как dvf тоже null

1. Добавь промежуточный action и в ссылке указывай на него, а уже из него переходи на страничку.
2. Что мешает создать потомка от DynaValidatorForm, и в его конструкторе присваивать то что надо?
PM MAIL   Вверх
ne3x
Дата 11.1.2008, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(brejnev @ 10.1.2008,  20:55)
2. Что мешает создать потомка от DynaValidatorForm, и в его конструкторе присваивать то что надо?

Создать потомка не получится, как я уже говорил. Вобщем, проблема решилась.
Просто добавил в struts-config.xml в описание акшина форму, в результате чего, хотя формы и нет на странице, struts создает ее.


Это сообщение отредактировал(а) ne3x - 11.1.2008, 10:24
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0946 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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