JSF: bean portée; session vs demande

J'ai un managed bean appelé UserSearchHandler, il a un doSearch méthode qui remplit UserSearchHandler.searchResults qui sont affichés dans un tableau sur le userSearch.xhtml page.

J'ai un autre bean géré appelé UserHandler, il a un showUser méthode et ainsi de suite.

Dans le tableau des résultats de recherche, le nom d'utilisateur est un lien qui, lorsqu'il est cliqué, est censé afficher les détails de l'utilisateur sur un userView.xhtml page. La table et le lien ressemble à ceci:

<p:dataTable var="user" value="#{userSearchHandler.searchResults" >

//... and so on ... then

<h:commandLink value="#{user.firstName}" action="#{userHandler.showUser}">
  <f:setPropertyActionListener target="#{userHandler.userIdToShow}" value="#{profile.id}"/>
</h:commandLink>

Tout fonctionne bien lorsque la gestion de haricots sont mis à session portée.

Cependant, lorsque je change la portée sur les haricots à request la recherche fonctionne, et le tableau est renseigné, mais quand je clique sur le lien rien ne se passe. J'ai mis un point d'arrêt sur la userHandler.showUser méthode et elle n'est jamais atteint lorsque le userSearchHandler est réglé sur "demande" de la portée.

Quelqu'un peut aider à expliquer pourquoi il en est, ou ce que je fais mal?

InformationsquelleAutor Robert Hume | 2011-01-26