Java 在视图之间传递对象

Java 在视图之间传递对象,java,jsf,jsf-2,Java,Jsf,Jsf 2,在JSF2中,您可以通过f:viewParam或@ManagedProperty传递ID、字符串和其他可以作为请求参数发送的内容(即讨论) 但是,我想在视图之间传递对象,从view1到view2。我的支持bean是@viewscope。我尝试了以下方法: <f:setPropertyActionListener value="#{view1Bean.myObject}" target="#{view2Bean.myObject}" /> 这将在view1上创建一个view2Be

在JSF2中,您可以通过
f:viewParam
@ManagedProperty
传递ID、字符串和其他可以作为请求参数发送的内容(即讨论)

但是,我想在视图之间传递对象,从view1到view2。我的支持bean是
@viewscope
。我尝试了以下方法:

<f:setPropertyActionListener value="#{view1Bean.myObject}" target="#{view2Bean.myObject}" />

这将在view1上创建一个
view2Bean
,在查看view2时该视图不再存在。因此,
view2Bean.myObject
null
,因为该属性从未在
view2Bean
的特定实例上设置

我考虑过使用Flash示波器,它似乎正是实现这一点的工具。然而,我在某处读到BalusC说它在Mojarra被破坏了,我正在使用它

在视图之间传递对象的最佳方式是什么

但是,我想在视图之间传递对象,从view1到view2

您只需将对象的唯一ID作为参数传递给下一个视图,并将
转换器连接到



我考虑过使用Flash示波器,它似乎正是实现这一点的工具。然而,我在某处读到BalusC说它在Mojarra被破坏了,我正在使用它


从当前的Mojarra版本开始,由于Flash cookie的工作方式,只有当视图位于不同的路径(文件夹)时,此操作才会失败。如果它们位于相同的路径(文件夹),那么它应该可以正常工作。

通常,会话范围用于在视图之间更改时需要保留的对象。