В чем разница между частичной отправкой и автоматической отправкой в ​​JSF? - PullRequest
5 голосов
/ 02 сентября 2011

Я думаю, что я знал разницу, но сейчас я нахожусь в замешательстве.: P

Кажется, что они оба делают одно и то же, за исключением того, что partialSubmit используется на кнопках отправки для отправки формы с использованием AJAX, а autoSubmit используется на редактируемых компонентах, которые отправляют только свои собственныесодержание.Правильно ли я это говорю?

Ответы [ 2 ]

9 голосов
/ 08 сентября 2011

Принятый ответ не на 100% правильный для АПД. Атрибут partialTriggers участвует в жизненном цикле.

С Декларативное включение частичного рендеринга страницы

Атрибут autoSubmit для компонента ввода и partialSubmit Атрибут на компоненте команды не одно и то же. когда partialSubmit имеет значение true, тогда только те компоненты, которые имеют значения их атрибута partialTriggers будут обработаны через жизненный цикл. Атрибут autoSubmit используется для ввода и выбора Компоненты, чтобы сказать платформе, чтобы автоматически сделать отправку формы всякий раз, когда значение меняется. Тем не менее, когда форма отправлена ​​и autoSubmit атрибут имеет значение true, событие valueChangeEvent имеет значение и жизненный цикл запускается только на компонентах, помеченных как root компоненты для этого события, и их дети. Для дополнительной информации, см. раздел 4.4, « Использование оптимизированного жизненного цикла ».

3 голосов
/ 02 сентября 2011

Оба являются вызовами с поддержкой AJAX, происходящими из пользовательских свойств пользовательских компонентов JSF. autoSubmit по существу асинхронно отправляет обратно контент, специфичный для компонента, для поддержания текущих значений управляемых компонентов на стороне сервера с содержимым в компоненте на стороне клиента.

A partialSubmit - это еще один асинхронный AJAX-вызов, который будет использоваться для немедленной обратной отправки значения компонента для какого-либо события компонента, например, потери фокуса на компоненте inputText ICEFaces.

Интересно отметить, что весь ViewState отправляется обратно при каждом типе асинхронной отправки, поэтому, если значения других компонентов изменились на странице перед отправкой, связанные свойства на стороне сервера управляемого компонента будут иметь свои значения. также обновляется, даже если компоненты на стороне клиента МОГУТ не обновляться, чтобы отражать любые изменения данных на стороне сервера, которые могли произойти.

Фактически весь жизненный цикл на стороне сервера JSF происходит при каждой обратной передаче, прочитайте следующую статью о реализации отладочного PhaseListener, который позволяет вам увидеть, какие фазы происходят после каждой асинхронной операции отправки.

http://balusc.blogspot.com/2006/09/debug-jsf-lifecycle.html

...