使用ConfigurableNavigationHandler
时如何将参数传递到下一页?
最佳答案
您可以通过将 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>
另请参阅:
关于jsf-2 - 使用ConfigurableNavigationHandler时如何将参数传递到下一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12967065/