使用ConfigurableNavigationHandler时如何将参数传递到下一页

时间:2012-10-19 03:42:01

标签: jsf-2

使用ConfigurableNavigationHandler时如何将参数传递到下一页?

1 个答案:

答案 0 :(得分:2)

您可以通过在结果中附加includeViewParams = true来传递参数。

ConfigurableNavigationHandler configurableNavigationHandler =
         (ConfigurableNavigationHandler)FacesContext.
           getCurrentInstance().getApplication().getNavigationHandler();

     configurableNavigationHandler.performNavigation("success?faces-redirect=true&includeViewParams=true");

<强>更新

如果要在重定向后发送对象。您可以将Flash Scope用于此目的。     放置在Flash作用域内的对象将可用于后续请求,然后清除。     换句话说,放置在Flash作用域中的对象将在重定向后继续存在。

context = FacesContext.getCurrentInstance();
ConfigurableNavigationHandler configurableNavigationHandler =
     (ConfigurableNavigationHandler)context.getApplication().getNavigationHandler();

Flash flash = context.getExternalContext().getFlash(); 
flash.put("userBean", this);
configurableNavigationHandler.performNavigation("success?faces-redirect=true");

并在结果上使用它:

<h4>#{flash['userBean'].username}</h4>

另见: