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.
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();
来源:https://stackoverflow.com/questions/26634441/how-to-throw-404-from-bean-in-jsf