JSF2:处理托管Bean之间的数据

时间:2010-09-03 07:03:49

标签: jsf jsf-2

我遇到了一个问题,我找不到一个简单易行的方法:

我使用不同的ManagedBeans来组织我的视图。有控制器管理动作并从/向持久层传递数据。此外,还有一些模型位于视图后面并包含其数据。

RequestScoped控制器初始化模型(-managedBean)并用数据填充它。 Model(-managedBeans)是SessionScoped。到目前为止效果很好。

但是如何在两个requestScoped控制器之间传递数据?

我的控制器初始化模型,当我想处理数据时,它总是消失,因为我的模型中的任何请求数据都被空对象重新填充。


我想扩展我的问题:我这样做就像Bozho已经发布的那样。但是我的'anotherBean'(就像他所说的那样)在一段时间后都是空的? JSF是否出于某些原因重新创建bean?

4 个答案:

答案 0 :(得分:3)

您可以通过Map envorinment访问requestscope FacesContext

FacesContext.getCurrentInstance().getExternalContext().getRequestMap()

你有一个Map,其中字符串是托管bean名称,Object是托管bean的实例。

我建议您this article关于JSF中的通信,由BalusC编写。

答案 1 :(得分:2)

@ManagedProperty(name = "#{anotherBean}")
private AnotherBean anotherBean;

答案 2 :(得分:0)

谢谢大家的答案,但我的错误在其他地方。

几周前,我尝试将PrimeFaces集成用于测试目的。我没有让它工作并删除它。但我忘了删除我的pom文件中的依赖项(对于maven)。从我的pom文件中删除PrimeFaces后,我的webapp工作流畅。

答案 3 :(得分:-1)

使用ViewScoped for ManagedBean而不是RequsetScope