2012-03-20 3 views
0

Я использую JSF 2.0, и когда форма отправлена, я генерирую загрузку. В результате этого представление НЕ использует AJAX. Когда файл был сгенерирован для загрузки, я звоню FacesContext.getCurrentInstance().responseComplete();, чтобы сообщить браузеру, что все сделано.JSF 2.0 Выполнение javascript на FacesContext.responseComplete()

Однако, ради удобства пользователей, я хочу показать сообщение «загрузка» на экране, когда файл сгенерирован, а затем удалить это сообщение после создания загрузки. Есть ли способ сделать это, учитывая отсутствие AJAX?

Спасибо,
Крис

Edit:
Я уже вызов JavaScript для показать сообщение onSubmit. Моя проблема заключается в том, чтобы вызвать Javascript для удаления сообщения после завершения ответа.

ответ

3

Поднять сообщение о загрузке before submitting the form.

FacesContext.responseComplete() не отправляет никакого ответа клиенту. Он просто устанавливает флаг в контексте, чтобы сообщить структуре JSF, что никакие дальнейшие фазы жизненного цикла не должны обрабатываться после завершения текущего.

+0

Извините, плохое объяснение с моей стороны, я уже вызываю требуемый Javascript в событии onSubmit формы. Однако я хочу затем вызвать Javascript, чтобы удалить его после завершения ответа. –

+0

А, я должен был подумать об этом. – McDowell

+2

Здесь описан подход на основе файлов cookie [здесь] (http://stackoverflow.com/questions/1106377/detect-when-browser-receives-file-download). – McDowell