2014-09-23 75 views
0

在閱讀了很多Web上的例子之後,我找不到正確的方法來刷新jsf頁面程序的正確答案。 使用meta http-equiv="refresh" content="20"時,有時候,當網絡非常繁忙時,我收到「網頁不可用」並且用戶失去了工作,但該應用程序仍在工作,當用戶按F5鍵可以繼續工作時,但這是不是解決方案。 那麼,有沒有其他方法可以刷新JSF頁面?請注意,我有非常小的服務器資源(我使用樹莓派),並不想使用例如Ajax來完成這項工作。 謝謝。什麼是刷新JSF頁面編程的最佳方法

+0

你想在哪個事件刷新頁面? – Smutje 2014-09-23 10:53:02

+0

您在樹莓派PI中運行哪個JEE應用程序服務器? – Yamada 2014-09-23 11:45:31

+0

@Smutje - 呃,其實我有一個線程,誰檢查我的商店中的新項目(帶狀態的數據表)。當線程在數據表中找到新項目時,線程必須通知客戶端新的更改。用舊的meta標籤,我正在刷新網站,我的backin bean檢查。現在我必須檢查線程並通知我的客戶端(用戶),他們等待着。 – user3157099 2014-09-23 12:09:09

回答

0

由於您有小型服務器資源,因此ajax方法可能會更好,因爲它可能不會刷新整個頁面。請注意,您必須正確設計它。

如果這是可以接受的,您可以使用PrimeFaces中的輪詢組件。

<p:poll interval="20" listener="#{yourManagedBean.keepAlive}"/> 

這是一個針對ajax處理問題的link

+0

的特定部分感謝山田,我會嘗試! – user3157099 2014-09-23 13:14:57

+0

可以舉一個Bean的方法示例 - keepAlive() - 我的意思是,在這20個sekonds中調用「#{yourManagedBean.keepAlive}將會做什麼。謝謝 – user3157099 2014-09-23 15:57:05

+0

它可以是一個空白的方法..但是如果你想記錄用戶在同一個屏幕上用了多長時間,你可以使用它來達到這個目的。 – Yamada 2014-09-23 17:50:15

0

您還可以將您的主頁設置爲errorPage。如果網站不可用,您的網站將被重定向到該網站。在你的web.xml中配置:

<error-page> 
    <exception-type>java.lang.Exception</exception-type> 
    <location>yourHomepage.xhtml</location> 
</error-page> 
+0

感謝Mahttias,這個聰明的解決方案 - 它工作,這意味着我們做了一個無限循環來檢查網站和只有瀏覽器網站的解決方案與ajax是好的,但是當我們沒有ajax - 我認爲你的想法是最好的,謝謝 – user3157099 2014-09-25 08:56:43

+0

這不是問題的最佳解決方案,但它會幫助我。問題是,並非所有的網站,誰犯了「錯誤」必須在我的錯誤頁面結束。有沒有辦法只爲該網站的錯誤頁面 - 不是所有?謝謝。 – user3157099 2014-09-25 08:59:58

+0

您可以爲不同的例外定義不同的錯誤頁面。我認爲使用Primefaces 5還可以使用表達式語言動態地定義errorPage的位置:[link](https://code.google.com/p/primefaces/issues/detail?id=6072&thanks=6072&ts=1377986205 ) – 2014-09-25 09:47:05

相關問題