我从 JSF 1.2 迁移到 JSF 2.0,似乎在切换过程中我错过了一些东西。我有以下场景:

  1. 一页上有一个按钮,其中 actionListener 设置为一个托管 bean 的方法,该方法通过调用添加一个对象来请求 FacesContext.getCurrentInstance().getExternalContext().getRequestMap().put("foo", fooObject);
  2. 导航已正确处理到初始化其他托管 bean 的其他页面。
  3. 其他托管 bean 的构造函数尝试通过调用从请求中检索传递的对象 FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("foo"); 并用接收到的值初始化自身。

两个托管 bean 都是请求范围的。我注意到构造函数无法从请求中检索正确的值,因为请求映射不包含“foo”键。

我究竟做错了什么?有一个更好的方法吗?

提前致谢。

有帮助吗?

解决方案

在步骤 2 中,如果存在重定向,则初始请求范围将丢失,因为重定向将导致另一个请求。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top