2012-03-02 43 views
4

我有一個EJB 2.1項目(實際上,它必須遷移到EJB 3.1中:-))
目前它只支持一個窗口。這意味着用戶應該在窗口上工作。這是因爲變量,用作會話變量。 (上次搜索條件,上次使用的ID等)。

我想讓在Firefox中打開兩個或多個選項卡並行工作。如果用戶位於同一個選項卡上,則只應爲該選項卡保留變量。只有全局變量才能對所有選項卡有效。
我該如何解決這個問題?
理解多窗口的任何文檔都會有所幫助。
或者其他關於multiwindow web項目的想法或經驗也是值得歡迎的。Java Web項目中的多窗口

+2

有一件事是肯定的:問題和解決方案都沒有任何關係EJB – 2012-03-02 13:03:34

+0

@ Michael-Borgwardt因爲我不知道是否有針對ejb的特定解決方案,所以我寫了它,以表明項目是一個ejb項目。 – Kayser 2012-03-02 13:07:06

+0

每個選項卡都是應用程序的單獨實例。如果您希望它們進行通信,您將需要維護服務器上的狀態。 Html5有一個跨應用消息傳遞機制。也許這會工作? – 2012-03-02 13:14:45

回答

1

在我知道的瀏覽器或任何EJB中,沒有任何內置方式可以解決這個問題。其他Web應用程序框架具有Web Flow的概念,這些Web Flows是一系列連接的操作,可以處理同一瀏覽器的不同選項卡中的多個流程,因此您可能希望開始在那裏查看。

簡而言之,他們創建了自己的應用程序控制的「cookie」,而不是瀏覽器本身。這些「應用程序cookie」然後用於存儲與當前操作集相關的信息塊,就像會話一樣。

這些類型的東西通常會被用戶點擊一個鏈接,該鏈接在通知應用程序(通過頁面命中或ajax調用)的「新窗口」(或標籤)中打開一個新的「工作會話「正在打開並獲得內部會話設置。