# Managed Bean Scope zwischen Request und Session gesucht



## Xenya (20. Okt 2011)

Hallo,
ich suche eine Managed Bean Scope zwischen Request und Session, bzw. eine alternative wie ich dies lösen kann.

Die gespeicherten Informationen sollen bei jedem neuen Aufruf zurückgesetzt werden.
Allerdings sollen die Informationen nach dem Abarbeiten der html-Request behalten werden, da AJAX-Funktionen darauf zugreifen und auch zwischen gespeicherte Daten wieder benötigen.

Nun hätte ich es gerne, dass die Daten erstmal wie eine Session-Bean behandelt werden.
Bei einem echten Seitenaufruf - also nicht AJAX - soll sie neu erstellt werden (von mir aus auch eine Funktion aufgerufen werden, die die Daten zurück setzt).

Habt ihr nen Tipp für mich?

Danke


----------



## Tente (20. Okt 2011)

Hallo Xenya,

dazu  brauchst du JSF 2.0! Das Stichwort ist View-Scope: What’s New in JSF 2?  Andy Schwartz’s Weblog

LG


----------



## Xenya (21. Okt 2011)

Hallo Tente,
danke für die Antwort.

Da habe ich wohl die view-Scope falsch verstanden. Dachte sie ist wie Session aber auf einen Tab bezogen, so dass man in jedem Fenster eine eigene Session hat.

Aber wenn es die Funktionalität bringt, die ich brauch, wäre es ja super.

Habe es nun auf "view" gesetzt

```
<managed-bean>
  <managed-bean-name>beanName</managed-bean-name>
  <managed-bean-class>beanKlasse</managed-bean-class>
  <managed-bean-scope>view</managed-bean-scope>
 </managed-bean>
```


Aber das Verhalten auf meiner Seite ist wie zuvor, als wäre es Session.
Die Funktionalität die ich erwartet habe, dass in einem anderen Tab eine neue "Session" geöffnet wurde, war es aber auch nicht. Im zweiten Tab war es auch die Session aus dem 1. Tab

Ich denke irgend was anderes hat nicht funktioniert.

Was nutze ich:
GlassFish Server 3.1 (in Eclipse wurde der Server zusammen mit dem JDFK 7 eingebunden)
Bei dem "Dynamic Web Project" bei Eclipse habe ich:
Target Runtime: GlassFish Server Open Source Edition 3
Dynamic web module version: 3.0
Configuration: JavaServer Faces v2.0 Project
bei JSF Implementation Library: Disable Libraray Configuration

Helfen die Infos weiter das Problem zu erkennen?

Grüße


----------



## Sym (21. Okt 2011)

Eine ViewScopeBean existiert, solange Du keine neue Seite aufrufst (z.B. durch einen Redirect). Wenn Du nur in Tabs wechselst, ist der Viewscope noch nicht beendet.


----------



## waldek87 (21. Okt 2011)

Hallo,

vielleicht meintest du den Flash-Scope, dessen "Lebensdauer" zwischen dem Request- und dem Session-Scope liegt.

Learning JSF2: Using Flash scope | Maxa Blog


----------



## JimPanse (21. Okt 2011)

Vor JSF 2.0 hat man das ganze mit saveState realisiert:

t:saveState |tomahawk-saveState Example | JSF Tomahawk tag reference Tomahawk tag library MyFaces Tag Reference JavaServer Faces Tag Reference

d.h. du kannst deine Bean/Werte konkret für eine Seite/ mehrere Seiten/ einem Tab zwischen speichern! Habe leider mit JSF 2.0 noch nicht viel gemacht aber vielleicht kannst du damit feiner skalieren wann die Bean/Werte zwischen gehalten werden soll und wann nicht.

Greetz


----------



## Xenya (21. Okt 2011)

waldek87 hat gesagt.:


> Hallo,
> 
> vielleicht meintest du den Flash-Scope, dessen "Lebensdauer" zwischen dem Request- und dem Session-Scope liegt.
> 
> Learning JSF2: Using Flash scope | Maxa Blog


Flash erkennt Eclipse nicht. Wenn ich es trotzdem in die .xml schreibe und die Seiteaufrufe kommt folgender Fehler:
Cannot convert flash of type class java.lang.String to interface java.util.Map




JimPanse hat gesagt.:


> Vor JSF 2.0 hat man das ganze mit saveState realisiert:
> 
> t:saveState |tomahawk-saveState Example | JSF Tomahawk tag reference Tomahawk tag library MyFaces Tag Reference JavaServer Faces Tag Reference
> 
> ...


Hm, was hat es genau mit dem Tomahawk auf sich?
Ich nutze im Moment Glassfish bei der die JSF Implementierung Mojarra dabei ist.

Tomahawk basiert anscheinend auf MyFaces.

Kenne mich mit den verschiedenen Implementierungen leider gar nicht aus. Muss wohl bald auch auf eine Oracle Weblogic-Server umsteigen. Welche Implementierung ich dann brauche weiß ich noch nicht, muss mich erst informieren.


----------

