Cette étape est la partie essentielle de l'exercice, qui montre comment faire afficher les données sur une personne en utilisant un listener de type preRenderView qui va récupérer les informations dans la base de données pour les mettre dans une propriété du backing bean. On se rappelle d'un des principes de JSF 2.0 : les pages JSF servent à l'interface utilisateur ; dès qu'on a besoin de faire exécuter du code, on lance du code Java dans les backing beans (qui eux-mêmes font appel à des EJB ou à des classes Java POJO si nécessaire).
On garde donc la page index.xhtml de l'exercice précédent. Le nombre saisi sera l'identificateur d'une personne. Ce nombre est mis dans la propriété id du backing bean.
Pour gérer les données sur les personnes :
La page page2_personne.xhtml qui affiche les données sur la personne désignée par son id dans la page index.xhtml.
Le backing bean BeanPersonne pour les 2 pages (nommé beanPersonne). Il contient une propriété personne de type Personne qui désigne la personne dont on veut afficher les données. Il contient une méthode lirePersonne qui est un listener de type preRenderView à cause de cette ligne de page2_personne.xhtml :
<f:event type="preRenderView" listener="#{beanPersonne.lirePersonne}" />
Cette méthode lirePersonne met la valeur de la propriété personne à la personne dont l'identificateur a été donné dans la page index (qui a mis la valeur de cet identificateur dans la propriété "id" du backing bean). Pour récupérer les données dans la base de données, la méthode fait appel à l'EJB PersonneFacade injecté dans le backing bean.