Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Struts, можно ли передавать объект


Автор: brejnev 18.7.2007, 20:46
Struts 1.2.4

Есть action в котором создается объект Client ( entity bean, hibernate ). Action связан c jsp-страничкой, которая содержит ссылки на другие actions вида

Код

<atleap:link action="/ccenter/hotline/contact">
            <atleap:param name="client_id" value="${requestScope.client_id}" /> --- тут передаем параметр, id записи БД
            <atleap:message key="ccenter.hotline.contact"/>
</atleap:link>   


Потом в вызванном action я по id вытаскиваю из базы нужную запись.
А можно ли передавать между этими action-классами сам объект Client чтобы базу лишний раз не дергать?

Автор: ekr 18.7.2007, 22:45
Цитата(brejnev @  18.7.2007,  20:46 Найти цитируемый пост)
Потом в вызванном action я по id вытаскиваю из базы нужную запись.

Тоже как entity/hibernate?

1.Если entity-бин, то можно в веб-сессии сохранять удаленную ссылку на бин и пользоваться ей во втором action.
2. В случае entity или hibernate можно формировать Value Object (pojo/javabean), в который заливать данные из entity/hibernate и тоже сохранять этот VO в сессии.

Но в любом случае возникнут потенциальные проблемы:
1. Пострадает масштабируемость, т.к. на высокой нагрузке куча памяти будет занята данными и бОльшую часть времени с этими данными ничего не происходит (пользователи тупо смотрят страничку, а не спешат щелкнуть по ссылке )))) В случае entity это не так страшно, контейнер сам догадается освободить память.
2. Во втором случае возможны проблемы с целостностью данных, пока пользователь втыкает (см. выше), данные в базе могут измениться и pojo уже не будут отражать текущую ситуацию (возможно optimistic исключение).

Вообще, кеширующие решения (что, собстно, в теме и предлагается) - всегда гемор, с ними аккуратно надо )))

Автор: brejnev 19.7.2007, 08:55
Ясно, шпасиба. 
Гимор сам себе создавать не правильно, его и так дофигища. Бум id передавать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)