Ответ 1
Используйте FacesContext#renderResponse()
, если хотите перейти к фазе ответа рендеринга прямо сейчас. Вы часто это видите в сочетании со взломом слушателей изменения значений, которые запускаются в фазе проверки и должны пропускать значения модели обновления и вызывать фазы действий.
Используйте FacesContext#responseComplete()
, чтобы сигнализировать JSF, что вы уже обработали ответ самостоятельно, и что JSF, таким образом, не нуждается в рендеринге ответа. Вы часто это видите в сочетании с поддержкой bean методов действий, которые записывают загрузку файла в ответ. Это гарантирует, что JSF не добавляет загрузку файла с содержимым визуализированного HTML, который может закончиться поврежденной загрузкой или нелегальным исключением.