0
我在我的JSF應用程序中有一個隨機錯誤,它剝離了我所有的HTTP參數。它隨機發生,我無法收到任何錯誤信息(即使按照BalusC的建議here和here)。如何強制JSF重新發送請求?
我無法確定原因並解決它,所以我想知道如果另一個解決方案是possile:強制請求重新發送,如果我的所有參數都是空的。有沒有辦法讓瀏覽器重新發送請求?例如,通過JSF或HTTP錯誤代碼。
編輯:清理了不必要的代碼。
我在我的JSF應用程序中有一個隨機錯誤,它剝離了我所有的HTTP參數。它隨機發生,我無法收到任何錯誤信息(即使按照BalusC的建議here和here)。如何強制JSF重新發送請求?
我無法確定原因並解決它,所以我想知道如果另一個解決方案是possile:強制請求重新發送,如果我的所有參數都是空的。有沒有辦法讓瀏覽器重新發送請求?例如,通過JSF或HTTP錯誤代碼。
編輯:清理了不必要的代碼。
最後,我遵循@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);
}
編輯:添加的位置,否則瀏覽器有時顯示「該頁無法達到」錯誤消息。
你可以請分享一些代碼,以便我們可以檢查發生了什麼? – user1156544
我會嘗試你說的最後的手段(我認爲這是一個醜陋的補丁)。實際上,有一種方法可以強制瀏覽器重新發送請求,發送REDIRECT響應。但是,爲了實現這一點,您可能需要在請求過濾器中截獲請求,並從這裏發送重定向響應,而不涉及JSF。 –
是的,它是一個醜陋的補丁。我一直在嘗試幾個星期來解決這個問題,但沒有成功。 – Pascal