如何以编程方式执行JSF内部页面转发?

时间:2014-04-23 19:29:37

标签: jsf jsf-2 forward

如何在托管bean中以编程方式执行JSF内部页面,在某些情况下(如果发生异常时)?我不想在转发到其他页面时更改URL。

现在我使用此编程方式重定向到另一个页面,但这会更改URL。

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

2 个答案:

答案 0 :(得分:6)

试试这个:

public void forward(){
    String uri = "destination.xhtml";
    FacesContext.getCurrentInstance().getExternalContext().dispatch(uri);
}

答案 1 :(得分:1)

您可以使用

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

或者您可以使用

   FacesContext.getCurrentInstance().responseComplete();  

希望这有帮助。