![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 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 начал разбираться не так давно и сам хорошего решения пока не нашёл. |
|||
|
||||
| hanabi |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 18.8.2007 Репутация: нет Всего: нет |
тривиальный ответ, ИМХО, такой - не открывать вторую страницу
либо юзер занимается делом - заполняет форму, либо занимается фигней - типа открывает сто страниц на экране и любуется ими это ж application, а не веб-сайт |
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 9 Всего: 56 |
ты не понял. я добавил пользователя . всё ок. нажал линк добавить нового пользователя, а там, при session scope для мого бина, уже заполнены поля ! это не правильно.
|
|||
|
||||
| ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 32 Всего: 81 |
Не много не понял точно в чем проблема, но если то, в чём я думаю, то вот несколько мыслей.
Есть такая штука - MVC Так вот бины в JSF, по крайней мере те, что описываются в config-faces.xml - должны относится по моему убеждению к уровню Controller'а. А POJO классы, или Entity Beans в терминологии EJB, - классы описывающие модель предметной области - ими мы управляем сами в контроллере, а не отдаём движку JSF. Бины контроллера - это как бы программные модули, реализующие ту или иную функциональность (ещё это можно назвать бизнес-логикой), например Управление пользователями, здесь и create и edit и delete и т. д. Вот такую идеологию предлагаю помыслить |
|||
|
||||
| Kangaroo |
|
|||
|
AA - Aussie Animal ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2042 Регистрация: 7.10.2006 Где: US Репутация: 14 Всего: 104 |
create.faces -> Сохранил в базе -> view.faces -> Достал из базы и показал -> edit.faces -> достал из базы и открыл для редактирования... -------------------- Lost.... |
|||
|
||||
| necromancer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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/ |
|||
|
||||
| Kangaroo |
|
|||
|
AA - Aussie Animal ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2042 Регистрация: 7.10.2006 Где: US Репутация: 14 Всего: 104 |
Я немного не то имел ввиду. Ты про временное хранилище (зачем?), а я про постоянное. Создали бин, сохранили его куда-нибудь (в базу, например), для апдейта - достали его и базы. Зачем делать это конвесейшном? -------------------- Lost.... |
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 9 Всего: 56 |
ivg, теорию мы знаем , как это реализуется на практике ;) .
necromancer, поподробней про 4 и 5.
Kangaroo, тут есть запросы к базе без которого можно было бы обойтись ... хотелось бы обойтись ... и средства jsf должны позволять это . разве тут нету людей которые активно пользуются jsf ?? |
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 9 Всего: 56 |
решил эту проблемку, так как хотел изначально : просто и красиво
проблема была в странице view.jsp , дело в том что вместо полей для ввода h:inputText бин.вальюе там стояло поле вывода : h:outputText бин.вальюе ясное дело что значения с таких полей дальше не передаются, значит надо было добавить поля для ввода и спрятать их , на выручку пришёл компонент h:inputHidden бин.вальюе , ко-им я и воспользовался. сабж решён. ждите новых вопросов в скором будущем. Это сообщение отредактировал(а) v2v - 25.4.2008, 18:32 |
|||
|
||||
| alexsmirnov |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 23.8.2005 Репутация: 5 Всего: 7 |
На самом деле, в JSF для такого случая подразумевается использовать не 3, а 2 страницы.
create.faces - вводится информация и нажимается submit. Делается валидация. Если что-то не так, JSF заполняет сообщения и опять выводит create.faces. Если все OK - выводится следующая страница в том-же запросе. При ее отображении бин еще есть. |
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 9 Всего: 56 |
alexsmirnov, это всё само собой разумеется ;)
но страница где можно редактировать заполненные данные тоже имеет право на существование. |
|||
|
||||
![]()
|
| Правила форума "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. |