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

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

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

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

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

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

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

5
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
21.10.2009, 10:39
Я бы ввобще ничего не клал в 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  [ТС]
'история' - я имею в виду немного другое. в некоей группе были какие-то операции, эту информацию надо выгребать из БД и показывать на странице. то есть это не для сессии, а именно для реквеста.
проблема лишь в том, что не хотелось бы опять отдельный объект в реквест складывать, наряду с самим Form.
но с другой стороны, в явадоках про Form довольно внятно написано, зачем он должен использоваться. и хранить там лишние данные неловко как-то
0
4 / 4 / 1
Регистрация: 13.08.2008
Сообщений: 931
21.10.2009, 11:51
позвольте с Вами не согласиться %))

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

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

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

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

я правильно понял проблему?
0
0 / 0 / 2
Регистрация: 24.08.2008
Сообщений: 119
21.10.2009, 11:57  [ТС]
в сессию, конечно, я складывать такие вещи не буду )
'делать в классе формы поле-бин' - да, это именно то, что я собираюсь делать.
но останавливает меня тот момент, что вообще-то эти форм-бины сделаны для передачи параметров (с валидацией) со страницы в Action. то есть я явно лишние вещи туда складывать собираюсь.
0
0 / 0 / 2
Регистрация: 24.08.2008
Сообщений: 119
22.10.2009, 13:27  [ТС]
собственно, такой вот обобщенный вопрос -
принято ли в стратс использовать ActionForm для отображения какой-то информации на страницах, или же исключительно для заполнения/проверки/обратного отображения форм?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
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' prefix='html' %&gt; &lt;%@ taglib...

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru