Standardmäßig scheint JSF sehr "stateful" zu sein. Ich muss Menschen erlauben, unsere Anwendung mit mehreren Tabs zu verwenden, die viele Dinge in verschiedenen Teilen der Anwendung machen.
Ich kann anscheinend keine anständige Anleitung finden, dies ohne eine Menge Re-Engineering zu erreichen.
Wir verwenden derzeit keine ICEfaces, aber ich habe das gerade in den ICEfaces docs gefunden:
6.5.7. ICEfaces Portlets und gleichzeitige DOM-Ansichten
ICEfaces bietet eine Funktion namens Gleichzeitige DOM-Ansichten, die steuern ob das ICEfaces-Framework oder nicht unterstützt mehrere Ansichten eines einzelnen Anwendung aus dem gleichen Browser. Wenn Sie in einem Portlet-Container ausgeführt werden, ICEfaces muss das separate behandeln Portlets auf einer einzelnen Portalseite als unterschiedliche Ansichten, so ist es fast immer notwendig (und daher am sichersten) zu Setzen Sie diesen Parameter auf "True".
Beispiel 6.19. Aktivieren der ICEfaces Concurrent-DOM-Ansichten sind in der WEB-INF / web.xml Konfigurationsdatei so das separate Portlets auf demselben Portalseite werden als unterschiedlich behandelt Ansichten
com.icesoft.faces.concurrentDOMViews wahr
Ich möchte also wissen, ob diese fabelhaft klingende Funktionalität möglicherweise auf meine vorhandenen h: -Formulare angewendet wird oder ob sie nur mit ICEface-Komponenten funktioniert?
Kann jemand einen guten Rat geben, um eine JSF-App auf mehreren Tabs zu betreiben?
In JSF 2.0 können Sie dafür den Ansichtsbereich verwenden, der mit @ViewScoped
. Sie können sogar benutzerdefinierte Bereiche definieren.
Ich glaube nicht, dass der Ansichtsbereich hier funktioniert. Die Frage bezieht sich speziell auf ein Multi-Browser-Tab-Szenario und mein Verständnis mit View Scope ist, dass es immer noch einen separaten Status pro Ansicht (nicht pro Tab) gibt. Mit anderen Worten, wenn Sie die gleiche Seite in mehreren Browser-Tabs geöffnet haben, besteht die Gefahr, dass Sie den Status teilen.
Dies wird hier erwähnt: Ссылка
Es scheint, als gäbe es nur zwei Lösungen für dieses Problem: 1. CDI / Seam Conversation Scope (oder etwas ähnliches, wo eine zusätzliche ID zu Anfragen hinzugefügt wird) oder 2. Bleiben Sie einfach bei der Anforderung einer Scope / statuslosen App.
MyFaces-Orchester hat eine Möglichkeit, mit mehreren Tabs / Fenstern umzugehen (mit dem Parameter conversationContext
get) .
Verwenden Sie Seam mit dem gewünschten JSF-Framework.
Der Konversation Kontext ist perfekt für die Verwendung verschiedener Registerkarte. Starten Sie einfach eine neue Unterhaltung auf jeder Registerkarte. :)
Sehen Sie sich die Buchungsdemo
an