【问题标题】:Pass request parameters through FacesContext通过 FacesContext 传递请求参数
【发布时间】:2010-10-25 12:01:54
【问题描述】:

我从 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”键。

我做错了什么?有没有更好的方法来做到这一点?

提前致谢。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回复。是的,你完全正确。 faces-config.xml 中有 元素,当我删除它时,参数已正确传递。
    • 感谢您的知识。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多