2010-10-25 206 views
2

我从JSF 1.2移动到JSF 2.0,似乎我在交换过程中遗漏了一些东西。我有以下情形:通过FacesContext传递请求参数

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

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

我在做什么错?有一个更好的方法吗?

在此先感谢。

回答

4

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

+0

谢谢您的回复。是的,你是对的。 faces-config.xml中有元素,当我删除它时,参数被正确传递。 – Vladimir 2010-11-02 08:32:36

+0

谢谢你的知识。非常感激。 – 2015-04-28 10:30:55