Неявная навигация в JSF 2.0

Неявная навигация в JSF 2.0

В JSF 1.2 всю навигацию по страницам необходимо объявлять в файле «faces-config.xml» следующим образом:

...

   page1.xhtml
   
       page2
       /page2.xhtml
   

...

В JSF 2 он рассматривает «результат» как имя страницы, например, перейдите к «page1.xhtml», вы должны поставить «результат» как «page1». Этот механизм называется «Implicit Navigation», где вам не нужно объявлять утомительное правило навигации, вместо этого просто поместите «результат» в атрибут действия напрямую, и JSF найдет правильный «view id »Автоматически.

Есть два способа реализовать неявную навигацию в JSF 2.

1. Результат на странице JSF

Вы можете поместить «результат» прямо на странице JSF.

page1.xhtml - страница JSF с кнопкой для перехода с текущей страницы на «page2.xhtml».


    

После нажатия кнопки JSF объединит значение действия или результат «page2» с расширением «xhtml» и найдет имя представления «page2.xhtml» в текущем «page1.xhtml ».

2. Результат в управляемом бобе

Кроме того, вы также можете определить «результат» в управляемом компоненте следующим образом:

PageController.java

@ManagedBean
@SessionScoped
public class PageController implements Serializable {

    public String moveToPage2(){
        return "page2"; //outcome
    }
}

На странице JSF, атрибут действия, просто вызовите метод с помощью «method expression».

page1.xhtml


    

Перенаправление

По умолчанию JSF 2 выполняет переадресацию при переходе на другую страницу, поэтому URL страницы всегда остается позади :). Например, при переходе от «page1.xhtml» к «page2.xhtml» адресная строка браузера будет по-прежнему отображать тот же URL «page1.xhtml».

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


    

Note
Для простой навигации по страницам этой новой неявной навигации более чем достаточно; Для сложной навигации по страницам вы по-прежнему можете объявлять поток страниц (правило навигации) в файлеfaces-config.xml.

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

Скачать -JSF-2-Implicit-Navigation-Example.zip (10 КБ)