通过FacesContext传递请求参数

时间:2010-10-25 12:01:54

标签: jsf-2 parameter-passing actionlistener managed-bean

我从JSF 1.2迁移到JSF 2.0,似乎我在转换过程中遗漏了一些东西。我有以下情况:

  1. 在一个页面上有一个按钮,其中actionListener设置为一个托管bean的方法,该方法通过调用FacesContext.getCurrentInstance().getExternalContext().getRequestMap().put("foo", fooObject);
  2. 添加要请求的对象
  3. 正确处理导航到其他已初始化其他托管bean的页面。
  4. 其他托管bean的构造函数尝试通过调用FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("foo");从请求中检索传递的对象,并使用接收的值初始化自身。
  5. 两个托管bean都是请求作用域。我注意到构造函数无法从请求中检索正确的值,因为请求映射不包含“foo”键。

    我做错了什么?有更好的方法吗?

    提前致谢。

1 个答案:

答案 0 :(得分:4)

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