2014-10-29 5 views
1

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

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

ответ

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(); 
+0

Да это сделало работу. Просто хотел подтвердить, что 404 действительно будет возвращен с DISPATCH? –

+0

Да, вы можете проверить с помощью хром-консоли – Guaido79

+0

Если это работает, пожалуйста, подумайте о том, чтобы принять ответ, было бы желательно, tnx – Guaido79