Когда XPage впервые загружается через URL, какие фазы JSF используются? - PullRequest
2 голосов
/ 13 марта 2012

Когда пользователь впервые обращается к XPage, является ли фаза 6 жизненного цикла JSF (ответ визуализации) единственной фазой, которая выполняется? Выполняется ли правильный срок?

Ответы [ 3 ]

3 голосов
/ 13 марта 2012

GET и POST запросы обрабатываются по-разному.GET 'требует наименьшего объема обработки (createView / restoreView [aka. Phase 1 - RESTORE_VIEW], за которым следует renderResponse [aka. Phase 6 - RENDER_RESPONSE].

Среда выполнения XPages Core действительно основана на JSF ...но есть различия в том, как выполняется жизненный цикл обработки запросов - XPages обеспечивает оптимизацию для работы со сложной обработкой Ajax, сложным частичным выполнением и т. д. Фактически, фаза 1 для запроса GET выполняет функции createView / restoreView, но обходит часть фазышаги прослушивания / уведомления для обеспечения максимальной пропускной способности для запроса GET.

Я привел простой пример на OpenNTF.org / XSnippets, чтобы помочь людям изучить / попрактиковаться в жизненном цикле обработки запросов XPages при различных обстоятельствах.смотреть на:

http://openntf.org/XSnippets.nsf/snippet.xsp?id=xpages-request-processing-lifecycle-explorer-code...

3 голосов
/ 13 марта 2012

РЕДАКТИРОВАТЬ: Здесь кто-то объясняет свои наблюдения относительно жизненного цикла XPages. Он сделал тесты самостоятельно из-за отсутствия документации. Может быть, он немного староват.

Не знаю точно, но XPages базируется на JSF, поэтому я бы предложил, чтобы все JSF-фазы циклически проходили:

Restore View -> Apply Request Values -> Process Validations -> Update Model Values -> Invoke Application -> Render Response

enter image description here

Но есть определенные способы прервать эти фазы.

Надеюсь, это помогло, повеселись!

1 голос
/ 13 марта 2012

Да, при начальной загрузке страницы она сразу переходит к Render Response. Что имеет смысл, когда вы рассматриваете работу на других этапах. Нет данных для проверки, потому что у пользователя еще не было возможности отправить их; они также не могли вызывать какие-либо события и т. д. Таким образом, первый запрос просто обрабатывается, а последующие запросы проходят полный жизненный цикл, если проверка не пройдена или пропущена.

И да, «исполненный» - это правильный термин. :)

...