2

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

4

1 回答 1

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>

也可以看看:

于 2012-10-19T07:51:44.050 回答