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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JSF : транзитивность request bean 
V
    Опции темы
v2v
Дата 25.4.2008, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

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



Есть три страници: 
create.faces , view.faces & edit.faces
запускаю create.faces  - и заполняю поля формы - создаю бин , при сабмите перехожу на view.faces и проверяю что всё заполнено правильно . что то не правильно жму кнопку edit и перехожу на edit.faces , но вот проблема. мой бин есть request scope и поэтому на третью страницу он не передаётся.
Как это полечить?

Вариант использовать для моего бина session scope не подходит , потому что если я после создания открою вторую страницу create.faces , то поля уже будут заполнены значениями первого бина. не катит.

помогайте. это должно быть тривиальный вопрос, но я с jsf начал разбираться не так давно и сам хорошего решения пока не нашёл.


--------------------
PM   Вверх
hanabi
Дата 25.4.2008, 03:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



тривиальный ответ, ИМХО, такой - не открывать вторую страницу

либо юзер занимается делом - заполняет форму, либо занимается фигней - типа открывает сто страниц на экране и любуется ими
это ж application, а не веб-сайт

PM MAIL   Вверх
v2v
Дата 25.4.2008, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

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



ты не понял. я добавил пользователя . всё ок. нажал линк добавить нового пользователя, а там, при session scope для мого бина, уже заполнены поля ! это не правильно.


--------------------
PM   Вверх
ivg
Дата 25.4.2008, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


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

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



Не много не понял точно в чем проблема, но если то, в чём я думаю, то вот несколько мыслей.
Есть такая штука - MVC  smile ну вы в курсе да?
Так вот бины в JSF, по крайней мере те, что описываются в config-faces.xml - должны относится по моему убеждению к уровню Controller'а.
А POJO классы, или Entity Beans в терминологии EJB, - классы описывающие модель предметной области - ими мы управляем сами в контроллере, а не отдаём движку JSF.
Бины контроллера - это как бы программные модули, реализующие ту или иную функциональность (ещё это можно назвать бизнес-логикой), например Управление пользователями, здесь и create и edit и delete и т. д.
Вот такую идеологию предлагаю помыслить  smile 

PM MAIL   Вверх
Kangaroo
Дата 25.4.2008, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

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



Цитата(v2v @  25.4.2008,  01:17 Найти цитируемый пост)
мой бин есть request scope и поэтому на третью страницу он не передаётся.
Как это полечить?

create.faces -> Сохранил в базе -> view.faces -> Достал из базы и показал -> edit.faces -> достал из базы и открыл для редактирования...


--------------------
Lost....
PM MAIL MSN   Вверх
necromancer
Дата 25.4.2008, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 317
Регистрация: 26.7.2006
Где: Москва

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



мда, а можно еще варианты: см
1 использовать сериализацию на странице
2 сохранять в сессии следующее: уникальный id сраницы или операции и связанные с ним объекты, по таймауту их убивать =)
3 использовать JBoss Seam
4 по моему у одного из дочерних проектов MyFaces есть Conversation
5 использовать PhaseListener для поддержания контектса страниц

хранение в базе это гуд и не гуд
гуд:
масштабируемость
надежная персистентность
отказоустойчивать
не гуд:
не совсем понятно почему оно не покажет на отдельно открытой  странице тоже что и на редактируемой =) см выше
усложняет логику
увеличивает накладные расходы
необходимо отслеживать что бы временная таблица чистилась


--------------------
С уважением, 
                 Виталий Смык
----------------------------------------------------------------------------------------------
SCJP, SCWCD, OCA
http://dev.maryno.net/video/
PM MAIL WWW ICQ Skype   Вверх
Kangaroo
Дата 25.4.2008, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

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



Цитата(necromancer @  25.4.2008,  13:52 Найти цитируемый пост)
хранение в базе это гуд и не гуд
гуд:
масштабируемость
надежная персистентность
отказоустойчивать
не гуд:
не совсем понятно почему оно не покажет на отдельно открытой  странице тоже что и на редактируемой =) см выше
усложняет логику
увеличивает накладные расходы
необходимо отслеживать что бы временная таблица чистилась 

 smile 
Я немного не то имел ввиду. Ты про временное хранилище (зачем?), а я про постоянное. 
Создали бин, сохранили его куда-нибудь (в базу, например), для апдейта - достали его и базы.
Зачем делать это конвесейшном?


--------------------
Lost....
PM MAIL MSN   Вверх
v2v
Дата 25.4.2008, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

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



ivg, теорию мы знаем , как это реализуется на практике ;) .
necromancer, поподробней про 4 и 5.

Цитата(Kangaroo @  25.4.2008,  09:29 Найти цитируемый пост)
create.faces -> Сохранил в базе -> view.faces -> Достал из базы и показал -> edit.faces -> достал из базы

Kangaroo, тут есть запросы к базе без которого можно было бы обойтись ... хотелось бы обойтись ... и средства jsf должны позволять это . 

разве тут нету людей которые активно пользуются jsf ??



--------------------
PM   Вверх
v2v
Дата 25.4.2008, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

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



решил эту проблемку, так как хотел изначально : просто и красиво smile.

проблема была в странице view.jsp , дело в том что вместо полей для ввода h:inputText бин.вальюе
там стояло поле вывода : h:outputText бин.вальюе 
ясное дело что значения с таких полей дальше не передаются, значит надо было  добавить 
поля для ввода и спрятать их , на выручку пришёл компонент h:inputHidden бин.вальюе , ко-им я и воспользовался.

сабж решён.
ждите новых вопросов в скором будущем. smile


Это сообщение отредактировал(а) v2v - 25.4.2008, 18:32


--------------------
PM   Вверх
alexsmirnov
Дата 26.4.2008, 03:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



На самом деле, в JSF для такого случая подразумевается использовать не 3, а 2 страницы.
create.faces - вводится информация и нажимается submit. Делается валидация. Если что-то не так, JSF заполняет сообщения и опять выводит create.faces.
Если все OK - выводится следующая страница в том-же запросе. При ее отображении бин еще есть.

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


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

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



alexsmirnov, это всё само собой разумеется ;)
но страница где можно редактировать заполненные данные тоже  имеет право на существование.


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0504 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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