2010-04-19 5 views

Répondre

9

Dans un Servlet, vous pouvez obtenir la demande scope haricots par:

Bean bean = (Bean) request.getAttribute("beanName"); 

et session scope haricots par:

Bean bean = (Bean) request.getSession().getAttribute("beanName); 

et l'application scope haricots par:

Bean bean = (Bean) getServletContext().getAttribute("beanName"); 
+0

En ce qui concerne comme je sais que les haricots ne sont pas nécessairement instanciés avec empressement par JSF. Donc, cela échouera si les beans n'ont pas été accédés avant via la couche JSF. – lexicore

+1

@lexi: C'est correct. Cependant, si vous avez besoin d'instancier vous-même ces beans dans une servlet au lieu de saisir les beans déjà créés, il y a quelque chose de plus faux dans l'approche/la conception. Soit la tâche doit être effectuée entièrement par un bean JSF, soit vous n'avez pas besoin du JSF du tout pour la tâche particulière. Difficile à dire parce que les exigences fonctionnelles réelles du PO sont vagues. Rappelez-vous qu'une servlet est essentiellement un contrôleur de page/front, le travail que le serveur FacesServlet a déjà rempli. Peut-être que le servlet en fait trop ou l'OP ne parvient pas à faire la même chose avec un bean JSF. – BalusC

+0

Je peux suivre votre argumentation mais je ne suis pas tout à fait d'accord. On peut utiliser JSF pour la gestion des beans et des servlets non-Faces pour front-end qui ne convient pas très bien à JSF. Par exemple, quelque chose comme DWR. Personnellement, je préfère généralement Spring pour DI plutôt que JSF, mais il y a beaucoup de scénarios où JSF serait plus que suffisant pour la gestion des beans. – lexicore

Questions connexes