JSF 2.0在bean(或页面?)之间传递数据

时间:2011-02-19 19:01:12

标签: jsf-2

我正在使用JSF 2.0

我的管理部分中有一个表单,我将在列表中选择一些用户。

表单(selectusers.xhtml)将这些用户添加到bean的列表中(SelectUsers.java)。

在我选择了一些用户之后,我会将用户列表从SelectUsers.java传递到另一个bean(AddAddressBean.java)并继续以另一种形式添加信息(addadress.xhtml)与每个用户的AddAddressBean相关的其他属性。

我不知道如何实现它。我想AddAddressBean.java应该是独立的(所以我可以和其他bean一起使用),所以我更喜欢AddAddressBean.java不知道其他的bean。

你能帮帮我吗? =)

B.R Carl

2 个答案:

答案 0 :(得分:6)

想到几件简单的事情:

  1. 也许你只能为那些相关的页面使用@SessionScoped或更短的CDI的@ConversationScope,或者这是三者中最好的,DeltaSpike @ViewAccessScoped
  2. 单击第1页上的按钮,它将转到第2页,在第1个bean中,您可以使用Flash对象来存储要传递的对象,在第二个bean的@PostConstruct方法中,可以从Flash对象中获取所有对象
  3. 如果您不介意使用会话范围,您仍然可以拥有2个bean,并且一个bean可以使用jsf way(@ ManagedProperty)或Java EE注入方式(@Inject)或者引用另一个bean弹簧方式如果你使用弹簧(@Autowired)

答案 1 :(得分:0)

这是我如何实现的(使用ConversationScoped为@bertie说)。

bean 1:

@Named("conversationBean1")
@ConversationScoped
public class ConversationBean1 implements Serializable {
          //---start conversation----

  }

bean 2:

@Named("conversationBean2")
@ConversationScoped
public class ConversationBean2 implements Serializable 
  {
      @Inject
      private ConversationBean1 conversationBean1;
   }