JSF: первоначальный запрос и запрос обратной передачи?
Пожалуйста, взгляните на приведенную ниже строку кода в JSF
<h:inputText id="name" value="#{customer.name}" />
Цитата из java.sun.com:
Для первоначального запроса страницы, содержащей этот тег, реализация JavaServer Faces оценивает выражение #{customer.name}
во время фазы ответа рендеринга жизненного цикла. На этом этапе выражение просто обращается к значению имени от клиента bean, как это делается при непосредственной оценке.
Для запроса обратной передачи реализация JavaServer Faces оценивает выражение на разных этапах жизненного цикла, в течение которого значение извлекается из запроса, проверяется и распространяется клиенту bean.
Я не уверен, что понимаю исходный запрос и запрос обратной передачи. Создает ли клиентский браузер два разных запроса на веб-сервер?
Ответы
Ответ 1
Первоначальный запрос - это запрос, который делает браузер, чтобы отобразить страницу с тегом ${customer.name}
. Возврат почты происходит, когда браузер публикует некоторые или все значения страницы, и затем возвращается клиенту та же самая страница, которая была отправлена в первую очередь. Это может произойти, например, в результате ошибки проверки.
Знание того, является ли текущее представление визуализированным, является результатом обратной передачи. Например, вы можете отобразить сообщение в результате обратной передачи, но не каждый раз, когда страница обновляется.
Ответ 2
Исходный запрос проходит только фазы восстановления и визуализации ответа, а процесс запроса обратной передачи выполняется на всех этапах (Apply Request Values, Validations Phase и т.д.).
Первоначальный запрос создается путем нажатия ссылки, вставки URL-адреса в адресной строке, в то время как запрос обратной передачи создается путем публикации формы путем нажатия кнопки отправки или любого запроса на отправку.
Ответ 3
Обычно у вас будет только один первоначальный запрос, когда вы перейдете в браузер и напишите в URL-адресе своего приложения.
Это делает HTTP-запрос GET сервером с вашими куки файлами, например. JSESSIONID, но не с восстановлением javax.faces.viewid.
Когда у вас есть открытая страница, и вы делаете взломанные вещи lick: window.location = newUrl → , вы также сделаете первоначальный запрос.
Вместо этого вы делаете что-то вроде jQuery ( "# somoeSubmitButton" ). click(), вы получите POST на сервер, и ваше старое представление будет восстановлено - и если вы спросите лицо context.isPostback()? вы получите правду.