# JSF: ManagedBean in RequestScope-MB nutzen



## Millman (18. Mai 2010)

Hey Leute,

ich bräuchte an dieser Stelle kurz eure Hilfe, weil ich dazu in der Literatur leider kein konkretes Beispiel finde.
Ich habe eine ManagedBean(BenutzerBean), welche SessionScoped ist und die Benutzeraktionen verwaltet, wie Benutzer anlegen, Benutzer löschen, etc. Dies geschieht über die Methoden in meiner BenutzerFacade.

Daneben habe ich eine Backing Bean, also eine MB, die RequestScoped ist, und die BusinessLogik auf der dazugehörigen benutzerseite.xhtml verwaltet.

Meine Frage ist nun, wie ich diese beiden Beans am besten miteinander verknüpfe. Kann ich in der BackingBean über den FacesContext irgendwie an die BenutzerBean kommen? Da diese SessionScoped ist, müsste da ja eigentlich möglich sein.

Danke im voraus.


----------



## Millman (19. Mai 2010)

Habe nun folgendes gefunden:

```
ELContext elContext = FacesContext.getCurrentInstance().getELContext();
        Application application = FacesContext.getCurrentInstance().getApplication();
        ExpressionFactory expressionFactory = application.getExpressionFactory( );
        ValueExpression ve = expressionFactory.createValueExpression(elContext,"#{benutzerBean}",BenutzerBean.class);
        benutzerBean= (BenutzerBean) ve.getValue(elContext);
```

Nur leider läuft es nicht, bzw. ist benutzerbean am Ende trotzdem immer null.

Was mache ich falsch? Ich habe meine Startseite "index", von dieser aus navigiere ich auf meine Verwaltungsseite für den Nutzer, wo es sich neu registrieren kann oder einloggen. 
Bei index => Verwaltungsseite wird eine neue benutzerBean initialisiert. 
Da BenutzerBean ja sessionscoped ist, muss ich diese doch wie oben im Code beschrieben aus dem FacesContext holen oder nicht?


----------



## damien (20. Mai 2010)

Probier mal:

```
DeineBean bean = (DeineBean) FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("nameDesBeans");
```

nameDesBeans musst du ersetzen durch den Beannamen, den du festgelegt hast.


----------

