JSF: перенаправление страницы против перенаправления страницы

JSF: перенаправление страницы против перенаправления страницы

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

Страница «start.xhtml» с кнопкой для перехода на страницу «page1.xhtml».

1. Перемотка страницы

Вот как работает пересылка страницы:

  1. Браузер отправляет запрос «GET» на URL:http://localhost:8080/JavaServerFaces/faces/start.xhtml.

  2. JSF получил запрос и вернул «start.xhtml».

  3. Браузер отобразит содержимое «start.xhtml».

  4. Пользователь нажимает на кнопку.

  5. JSF получил действие и выполняет отinternal page forward до «page1.xhtml» на стороне сервера.

  6. JSF возвращает «page1.xhtml».

  7. Браузер отображает содержимое «page1.xhtml».

На странице впередbrowser’s URL is not update.

jsf2-page-forward-example

2. Перенаправление страницы

Вот как работает перенаправление страниц:

  1. Браузер отправляет запрос «GET» на URL:http://localhost:8080/JavaServerFaces/faces/start.xhtml.

  2. JSF получил запрос и вернул «start.xhtml».

  3. Браузер отобразит содержимое «start.xhtml».

  4. Пользователь нажимает на кнопку.

  5. JSF получил действие и отправил браузеру ответ «redirect» на «page1.xhtml».

  6. Браузер получил ответ и отправил еще один запрос «GET» на URL:http://localhost:8080/JavaServerFaces/faces/page1.xhtml.

  7. JSF получил запрос и вернул «page1.xhtml».

  8. Браузер отображает содержимое «page1.xhtml» иbrowser’s URL is updated.

jsf2-page-redirection-example

Чтобы включить перенаправление страниц в JSF 2.0, вы можете добавить «faces-redirect=true» в конец строки результата.

Страница вперед.


    

Перенаправление страниц.


    

В правиле навигации вы можете включить перенаправление страниц, добавив элемент<redirect /> в<navigation-case />.


    start.xhtml
    
        page1
        page1.xhtml
        
    

Заключение

Механизм пересылки страниц по умолчанию быстрее по сравнению с перенаправлением страниц, поскольку при перенаправлении страниц добавляется дополнительный HTTP-запрос к серверу. Таким образом, включайте перенаправление страницы только при необходимости, например, использует шаблон проектированияPost/Redirect/Get для решения классическогоduplicated form submission problem.

Скачать исходный код

Скачать -JSF-2-Page-Redirection-Example.zip (9KB)