2012-11-20 5 views
6

Ich möchte auf einen View-Bereich verwaltete Bean in einem Servlet zugreifen.Zugriff auf @ViewScoped-gesteuerte Beans von Servlets?

ich für ähnliche Frage gesucht und bekam diese hier:

how to get beans from view scope die FacesContext.getCurrentInstance(), nicht anwendbar in einem Servlet verwendet, weil es ein Null-Ergebnis

JSF - get managed bean by name, die alle anderen Bereiche behandelt geben sollte, aber viewscope nicht

Ich werde denken, dass es nicht möglich ist, oder?

Es gibt die einfache Lösung, um diesen Bean-Bereich in den Session-Bereich zu ändern, aber es ist eine letzte Chance, weil ich wegen des Speicherverbrauchs besorgt bin.

Meine letzte Notwendigkeit ist die folgende: Die Verwaltung enthält einige Daten in einer DataTable angezeigt. Die gleiche Seite sollte das Bild (obligatorisch) der Diagrammdarstellung dieser Daten enthalten. Das Bild kann von einem Servlet erzeugt werden, aber es muss auf die Daten zugreifen oder sie von der Datenbank laden.

Ich habe auch die <p:graphicImage> von PrimeFaces 2.X versucht, aber es ist nicht mit Viewscope Bohnen kompatibel. Irgendein Vorschlag?

Antwort

6

Das ist nicht möglich, nein. Der Ansichtsbereich ist an eine bestimmte JSF-Ansicht gebunden, was in einer einfachen HTTP-Servlet-Anforderung nicht möglich ist. Beachten Sie, dass Sie während einer einfachen HTTP-Servlet-Anfrage auch nicht auf konkrete beanspruchte Anforderungsbeans zugreifen können. Sie geben immer null zurück.

Der Sitzungsumfang ist das Beste, was Sie bekommen können. Sie können das Attribut einfach aus dem Sitzungsbereich entfernen, sobald Sie im Servlet damit fertig sind.

+0

Wo auch immer ich eine JSF bezogene Frage habe, weiß ich, dass ich auf dich zählen kann. Danke – Filippo

+0

Gern geschehen :) – BalusC

+0

> BalusC sagte: "Beachten Sie, dass Sie nicht zugreifen können, während einer einfachen HTTP-Servlet-Anfrage konkrete Bean-Scoped-Beans ..." Könnten Sie bitte erklären, warum? Vielen Dank. –

Verwandte Themen