Как программно сделать внутреннюю страницу JSF вперед?

Как выполнить программную пересылку внутренней страницы JSF в управляемом компоненте при некоторых условиях (например, всякий раз, когда возникает исключение)? Я не хочу менять URL-адрес при переадресации на другую страницу.

Прямо сейчас я программно перенаправляюсь на другую страницу, но это меняет URL-адрес.

FacesContext.getCurrentInstance().getExternalContext().redirect();

person Rajat Gupta    schedule 23.04.2014    source источник


Ответы (2)


Попробуй это:

public void forward(){
    String uri = "destination.xhtml";
    FacesContext.getCurrentInstance().getExternalContext().dispatch(uri);
}
person Mr.J4mes    schedule 23.04.2014
comment
Спасибо.. это работает! Является ли это стандартным способом программной переадресации страниц или это обходной путь? - person Rajat Gupta; 24.04.2014
comment
@ user01: на данный момент это стандартный способ :) - person Mr.J4mes; 24.04.2014
comment
это перенаправление сервлета, чтобы использовать обработчик навигации JSF: FacesContext.getCurrentInstance(). - person Cosmin Cosmin; 20.11.2014

Вы можете сделать, используя

   FacesContext.getCurrentInstance().getViewRoot().setViewId("your target view id");
   FacesContext.getCurrentInstance().renderResponse();   

или вы можете использовать

   FacesContext.getCurrentInstance().responseComplete();  

Надеюсь это поможет.

person Srikanth Ganji    schedule 23.04.2014