Как выкинуть 404 из бина в jsf

Мне нужно сбросить 404 и направить посетителя на определенную страницу. Я пытаюсь использовать следующий код:

            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 происходит, но перенаправления на страницуbrowse_by_category.xhtml не происходит. Любая помощь будет оценена.


person Abhishek Kumar    schedule 29.10.2014    source источник


Ответы (1)


Согласно вашему комментарию, попробуйте следующее:

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();
person Guaido79    schedule 29.10.2014
comment
Да, это сработало. Просто хотел подтвердить, что 404 действительно будет возвращен с DISPATCH? - person Abhishek Kumar; 31.10.2014
comment
Да, вы можете проверить с помощью консоли Chrome - person Guaido79; 31.10.2014
comment
Если это сработает, рассмотрите возможность принять ответ, мы будем признательны, спасибо - person Guaido79; 01.11.2014