jsfjsf-1.2

How to force JSF to resend a request?


I have a random bug in my JSF app that strips all my HTTP parameters. It happens randomly and I can't get any error messages (even when following BalusC's advice here and here).

I can't pinpoint the cause and fix it so I'm wondering if another solution is possile: forcing the request to be resent if all my parameters are empty. Is there a way to make the browser resend its request? For example, through a JSF or HTTP error code.

EDIT: Cleaned up unnecessary code.


Solution

  • In the end, I followed @Xtreme Biker's advice and instead built a filter. It checks if parameters are present, otherwise it sends a redirect response (HTTP error code 307). Then the browser send back the same request which proceeds through.

    Something like:

    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);
    }
    

    EDIT: Added the location, otherwise the browser sometimes displays a "page cannot be reached" error message.