Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 2
Регистрация: 24.08.2008
Сообщений: 119
1

Хранение лишней информации в ActionForm (struts)

21.10.2009, 10:30. Просмотров 1090. Ответов 5
Метки нет (Все метки)


используем стратс.
мне надо на веб-странице показать некую информацию о некоей группе.
для этого я использую ActionForm.
а вот дополнительно я хочу показать еще некую историю сообщений/операций, связанные с этой группой.
технически можно положить в Action эту информацию прямо в этот ActionForm, и потом в jsp распечатать.
но идеологически это как-то некрасиво - все-таки предназначение у ActionForm немного не то...
пожалуй, лучше лишние данные в ActionForm не складывать, а положить, как и всё прочее, просто в request attribute.
кто-то может эту мысль прокомментировать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2009, 10:30
Ответы с готовыми решениями:

Struts. Как передать параметр в actionForm?
есть лист из п-строк , в строке идет надор столбцов : 3 столбца (логин пассворд маил) + хиден(ид) +...

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

Вывод лишней информации из файла
Если я просто выберу 2 пункт (вывод информации), то количество элементов считается правильно и...

Питон без изучения лишней информации
Всех с наступающим! Товарищи, подскажите, пожалуйста, на какие области знаний питона нужно...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы Java-разработчиков
5
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
21.10.2009, 10:39 2
Я бы ввобще ничего не клал в request attributes. Лучше иметь java bean -- хранитель всей информации, а уже его и класть в request. И всегда с одним и тем же имененм. Ну это в идеале.

Погди, а почему request. тебеж надо разделять информацию между запросами. значит в сессию. Короче, идея такакя. В request не кладем вообще ничего. Никогда. Исключение -- сервлет выполняет обработку, не сам, естественно, а поручив ее обычному java классу, а потом все, что нужно показать, отдает jsp. Вот в этом случае в request надо положить объект, содержащий в себе все данные для отображения. Чтобы jsp только брала их и отображала.

Другими словами, все сущности, рвемя жизни которых не превышает времени жизни запроса, никуда не кладем, а разбираемся на месте. Вто если приходится хранить историю запросов, то её место в сессии. И тоже в виде простого java bean. Тут, конечно, не работает ограничение единственности атрибута )
0
0 / 0 / 2
Регистрация: 24.08.2008
Сообщений: 119
21.10.2009, 11:04  [ТС] 3
'история' - я имею в виду немного другое. в некоей группе были какие-то операции, эту информацию надо выгребать из БД и показывать на странице. то есть это не для сессии, а именно для реквеста.
проблема лишь в том, что не хотелось бы опять отдельный объект в реквест складывать, наряду с самим Form.
но с другой стороны, в явадоках про Form довольно внятно написано, зачем он должен использоваться. и хранить там лишние данные неловко как-то
0
3 / 3 / 1
Регистрация: 13.08.2008
Сообщений: 931
21.10.2009, 11:51 4
позвольте с Вами не согласиться %))

если идет жесткая привязка истории к конкретному бину (что-то наподобие отношения 'композиция', а не 'агрегация'), то имеет смысл засовывать это в форму. хранить все в сессии - подумайте, что там будет твориться после 10 запросов... а таких юзверей еще сделаем штук 100-10000...

другое дело, как это засовывать в форму. один вариант - делать эти пропертис полями класса. тогда из бина в форму можно перегонять по одному (или юзать BeanUtils).

более рационально - делать в классе формы поле-бин. например, в форме будет холдер TransactionHistory. тогда мы берем этот бин в бизнес-уровне, а в Action делаем форме setTransactionHistory(theHistory); в JSP юзаются вложенные (nested) пропертис. например, для текстфилда будет что-то вроде:

Код
<html:text property='item.history.someProperty'/>
так, по-моему, мы больше приближаемся к идее инкапсуляции.

я правильно понял проблему?
0
0 / 0 / 2
Регистрация: 24.08.2008
Сообщений: 119
21.10.2009, 11:57  [ТС] 5
в сессию, конечно, я складывать такие вещи не буду )
'делать в классе формы поле-бин' - да, это именно то, что я собираюсь делать.
но останавливает меня тот момент, что вообще-то эти форм-бины сделаны для передачи параметров (с валидацией) со страницы в Action. то есть я явно лишние вещи туда складывать собираюсь.
0
0 / 0 / 2
Регистрация: 24.08.2008
Сообщений: 119
22.10.2009, 13:27  [ТС] 6
собственно, такой вот обобщенный вопрос -
принято ли в стратс использовать ActionForm для отображения какой-то информации на страницах, или же исключительно для заполнения/проверки/обратного отображения форм?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2009, 13:27

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

И снова проблема со Struts (validate): Cannot find message resources under key org.apache.struts.action.Message
Имеем imdex.jsp: &lt;%@ page language='java' %&gt; &lt;%@ taglib uri='/WEB-INF/struts-html.tld'...

Хранение информации
Как программно реализовать: етсь textBox в него что небудь пишем и программа записывает это в...

Хранение информации
Всем привет! Народ подскажите если будет БД расположена на стороне врага, при соединении можно...

Хранение информации
Здравствуйте, товарищи. Имею вопрос! Вот, например, есть в Windows игра &quot;Сапер&quot;. В ней содержится...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.