2012-02-20 34 views
0

我從一個支持bean的線程中調用一個線程,該線程支持許多db活動。 我想添加消息的上下文, ,但直到我到run()方法的結尾,上下文已經發布。 如何在不依賴於bean的情況下在線程的運行()方法 內向上下文添加消息?facescontext在線程完成工作之前發佈

回答

0

是..你可以使用Ajax推做到這一點... 您可以使用黃金面或任何你想做的推...

你應該做一個bean的通知..每當你要通知客戶端(只要你喜歡)以某種方式宣佈,豆......想想吧:)

通過這種方式,你可以的30分鐘就是他想要完成之後公佈的客戶端...

在最糟糕的情況下,您可以使用javascript中的「setInterval」函數定期檢查servlet的消息...

這裏是a tutorial for commet ..約

更多細節comet here

(是的..與阿賈克斯推的是一個相當長的路要走。 - 如果你想自己做)

歡呼。

+0

在我的網絡中,我們不使用素數或冰,還有其他選項,你知道嗎? – OshikawaL 2012-02-20 10:26:15

+0

你可以使用jQuery或你想要的東西(甚至是純粹的javascript - 我建議jQuery給大家,因爲是crossbrowser)..並且自己做一個ajax push ...我認爲你可以用servlet來做到這一點..閱讀:http ://en.wikipedia.org/wiki/Comet_(編程),但我建議你使用primefaces只爲你需要的頁面:) – Alex 2012-02-20 10:31:39

+0

也許你可以鏈接我一個例子,因爲我不知道它很好? – OshikawaL 2012-02-20 10:35:45

0

faces上下文實例綁定到通過ThreadLocal爲當前請求提供服務的線程。您可以嘗試檢索FacesContext實例並在啓動它之前將其作爲變量傳遞給線程。

+0

我試過了,它不工作。 – OshikawaL 2012-02-20 10:25:26

+0

我假設你正在調用應用程序階段開始你的線程?如果是這樣,你是否等待它們在返回結果字符串之前完成? – Nerrve 2012-02-20 10:34:05

+0

顯然不是,給出問題:) – BalusC 2012-02-20 12:35:34

相關問題