![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Alexis |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 14.8.2006 Где: Казань Репутация: 5 Всего: 5 |
Объясню суть проблемы на небольшом примере.
Пусть у меня есть форма добавления новой категории. Для категории мы должны выбрать родительскую категорию, соответственно в подготовительном Action мы должны получить список категорий и куда-то его засунуть. Я делаю примерно так?
Соответственно на странице:
И все было хорошо, пока я не решил сделать валидатор для формы, вдруг имя категории не введут или введут недопустимое. В итоге получается, что при неверном вводе пользователь возвращается на форму создания категории, но request ведь уже другой, а Action второй раз не вызывается, соответственно и никаких categories тоже уже не существует. В связи с этим вопрос: куда же все-таки нужно засовывать данные Action'а, чтобы они не "потерялись"? Вроде бы в request им самое место, но ненадежное выходит хранилище Решил проконсультироваться с опытными людьми. Мне сказали, что нужно делать кэш, который сам по себе и никак не связан со Struts. А сервер приложений будет при каждом запросе подкачивать в этот кэш данные. Может быть подскажите хотя бы ключевые слова, чтобы погуглить на эту тему. |
||||
|
|||||
| tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
А в сессию почему в таком разе не положить?
|
|||
|
||||
| Alexis |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 14.8.2006 Где: Казань Репутация: 5 Всего: 5 |
Собственно говоря на данный момент так и сделано. Я просто подумал, что захламлять сессию кучей данных -- не самое хорошое решение, вроде как request для этого придуман. Хотя если так принято делать, то и я так сделаю. Спасибо за ответ! |
|||
|
||||
| Greg |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 16.9.2006 Где: Беларусь, г.Минск Репутация: 5 Всего: 7 |
А почему в таком случае Вы считаете,что request можно захламлять ? Вижу у Вас сложились определённые предпочтения Насчет первого к сожалению ничего не могу сказать,а вот на счёт второго однозначно - используйте session. --------------------
Страх перед возможностью ошибки не должен отвращать нас от поисков истины. |
|||
|
||||
| Alexis |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 14.8.2006 Где: Казань Репутация: 5 Всего: 5 |
Просто ведь request хранится только между запросами, а не на протяжении всей сессии. Мало ли чего еще я в сессию напихаю.
Скорее я хотел узнать о более "правильном" с точки зрения верной структуры приложения подходе, т. е. о втором.
Так и сделаю. |
||||
|
|||||
| Alexis |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 14.8.2006 Где: Казань Репутация: 5 Всего: 5 |
Переводил проект на Tiles, и стало мне интересно нужно ли менять свойства Action'а input, которое описывается в struts-config.xml. Наконец-то почитал документацию
Только встала другая проблема. Если экшен, которые подготавливал форму получает какие-то параметры через URL, то при возникновении ошибки при валидации и повторном его вызове ничего ему не передадут. Но я эту проблему решил, может быть и не очень красиво, но работает. При запуске экшен сначала проверяет его наличие в запросе, если находит, то сохраняет еще и в сессию. Если в запросе параметр не найден, то ищем его в сессии, куда его положили при последнем вызове. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |