Search code examples
jsf-2http-response-codes

How to throw 404 from bean in jsf


I need to throw 404 and take visitor to a specific page. I am trying with following code:

            FacesContext facesContext = FacesContext.getCurrentInstance();
            ExternalContext externalContext = facesContext.getExternalContext();                
            externalContext.setResponseStatus(HttpServletResponse.SC_NOT_FOUND);
            externalContext.setResponseHeader(Common.LOCATION, "browse_by_category.xhtml?category=CATEGORY_ALL");
            facesContext.responseComplete();

404 happens but redirection to the browse_by_category.xhtml page does not happen. Any help will be greatly appreciated.


Solution

  • According to your comment please try this:

    FacesContext facesContext = FacesContext.getCurrentInstance();
            ExternalContext externalContext = facesContext.getExternalContext();                
            externalContext.setResponseStatus(HttpServletResponse.SC_NOT_FOUND);
            //externalContext.setResponseHeader(Common.LOCATION, "browse_by_category.xhtml?category=CATEGORY_ALL");
            externalContext.dispatch("browse_by_category.xhtml");
            facesContext.responseComplete();