2012-04-07 3 views
0

Dies ist mit MyFaces CODI JSF-Modul v1.0.1 für JSF 2.0eine Bohne aus der ViewAccessScope

Ich habe JSF Seite entfernen, die eine @ViewAccessScoped Backing Bean verwendet und es tut ziemlich viel, was ich es will, es sei denn es geht nicht weg, wenn ich damit fertig bin. Die Seite wird von einer anderen Seite wie folgt aufgerufen:

<h:link outcome="/editLocation" target="_blank" 
     value="Edit Location: #{maintLocation.selected.id}" 
     disabled="#{!maintLocation.rowSelected}">        
      <f:param name="locationID" value="#{maintLocation.selected.id}" /> 
      <f:param name="closeOnUpdate" value="true" /> 
    </h:link> 

Der Benutzer Erfahrung ist, dass die editLocation Seite erscheint in einem neuen Fenster oder eine neue Registerkarte auf, die Benutzer bearbeitet es, und nach Abschluss nennt es Fenster. close() wenn der Parameter closeOnUpdate wahr ist.

Das alles funktioniert. Aber wenn der Benutzer einen anderen Speicherort die ViewAccessScoped Bohne ist immer noch dort, so wird es nicht wieder instanziiert. Als solches sieht es niemals die Parameter und kommt einfach auf den Zustand, in dem es sich mit dem vorherigen Datensatz befindet.

Durch manuelle Löschung der windowid Parameter im Browser URL-Fenster kann ich eine neue Backbohne bekommen. Gibt es eine Möglichkeit, dies aus der h: link Komponente zu entfernen?

Gibt es eine Möglichkeit für die Bean, sich selbst aus dem Bereich zu entfernen, in dem sie sich befindet, sobald sie die vollständige Schaltfläche erreicht?

Antwort

2

Ich fand die Antwort auf the CODI Wiki page. Obwohl ich CODI Conversations nicht implizit verwende, scheint die @ViewAccessScoped-Implementierung darüber geschichtet zu sein. So könnte ich tun:

import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.Conversation; 

... 

@Inject private Conversation conversation; 

... 

conversation.close(); // when I have committed to close the window. 
+0

Wie einige andere CODI-Scopes @ViewAccessScoped ist nur eine besondere Art von Konversation. –

Verwandte Themen