JSF: начальный запрос и запрос обратной передачи? - PullRequest
18 голосов
/ 13 мая 2010

Пожалуйста, посмотрите на эту строку кода в JSF

<h:inputText id="name" value="#{customer.name}" />

Цитата из java.sun.com:

Для первоначального запроса страницы, содержащей этот тег, реализация JavaServer Faces оценивает выражение #{customer.name} во время фазы ответа рендеринга жизненного цикла. На этом этапе выражение просто получает доступ к значению имени из bean-компонента клиента, как это делается при немедленной оценке.

Для запроса обратной передачи реализация JavaServer Faces оценивает выражение на разных фазах жизненного цикла, в течение которого значение извлекается из запроса, проверяется и распространяется на компонент клиента.

Я не уверен, что понимаю первоначальный запрос против запрос обратной передачи . Браузер клиента делает два разных запроса к веб-серверу?

Ответы [ 3 ]

26 голосов
/ 20 июня 2011

Первоначальный запрос проходит только этапы Восстановить представление и отрисовку ответа, в то время как запрос обратного запроса обрабатывается на всех этапах (значения запроса, этап проверки и т. Д.).

Первоначальный запрос создается путем нажатия на ссылку, вставляя URL-адрес в адресную строку, в то время как запрос на обратную передачу создается путем публикации формы, нажав кнопку отправки или любой запрос на публикацию.

12 голосов
/ 13 мая 2010

Первоначальный запрос - это запрос браузера на отображение страницы с тегом ${customer.name}. Обратная передача происходит, когда браузер публикует некоторые или все значения страницы, а затем клиенту возвращается та же страница, которая была размещена в первую очередь. Это может произойти, например, в результате ошибки проверки.

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

0 голосов
/ 22 декабря 2015

Обычно у вас будет только один начальный запрос, когда вы заходите в браузер и пишете URL-адрес вашего приложения. Это делает запрос HTTP GET на сервер с вашими куки, например JSESSIONID, но не с восстановленным javax.faces.viewid.

Когда у вас есть открытая страница и вы делаете хакерские вещи, lick: window.location = newUrl -> вы также сделаете начальный запрос.

Когда вместо этого вы делаете что-то вроде jQuery ("# ​​somoeSubmitButton"). Click (), вы отправляете POST на сервер, и ваше старое представление будет восстановлено - и если вы спросите лица context.isPostback ()? ты получишь правду.

...