2017-07-03 143 views
0

我在我的JSF應用程序中有一個隨機錯誤,它剝離了我所有的HTTP參數。它隨機發生,我無法收到任何錯誤信息(即使按照BalusC的建議herehere)。如何強制JSF重新發送請求?

我無法確定原因並解決它,所以我想知道如果另一個解決方案是possile:強制請求重新發送,如果我的所有參數都是空的。有沒有辦法讓瀏覽器重新發送請求?例如,通過JSF或HTTP錯誤代碼。

編輯:清理了不必要的代碼。

+0

你可以請分享一些代碼,以便我們可以檢查發生了什麼? – user1156544

+0

我會嘗試你說的最後的手段(我認爲這是一個醜陋的補丁)。實際上,有一種方法可以強制瀏覽器重新發送請求,發送REDIRECT響應。但是,爲了實現這一點,您可能需要在請求過濾器中截獲請求,並從這裏發送重定向響應,而不涉及JSF。 –

+0

是的,它是一個醜陋的補丁。我一直在嘗試幾個星期來解決這個問題,但沒有成功。 – Pascal

回答

0

最後,我遵循@Xtreme Biker的建議,改爲建立了一個過濾器。它檢查參數是否存在,否則它會發送重定向響應(HTTP錯誤代碼307)。然後,瀏覽器發回相同的請求。

喜歡的東西:

String formWebContainerWidth = httpRequest.getParameter("myParam"); 
if(formWebContainerWidth == null){ 

    // SC_TEMPORARY_REDIRECT = 307 
    httpResponse.setStatus(HttpServletResponse.SC_TEMPORARY_REDIRECT); 
    httpResponse.setHeader("Location", httpRequest.getRequestURI()); 
} else { 
    chain.doFilter(request, response); 
} 

編輯:添加的位置,否則瀏覽器有時顯示「該頁無法達到」錯誤消息。