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

问题描述 投票:5回答: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

jsf-2
2个回答
6
投票

想到几个快速的事情:

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

0
投票

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

豆1:

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

  }

豆2:

@Named("conversationBean2")
@ConversationScoped
public class ConversationBean2 implements Serializable 
  {
      @Inject
      private ConversationBean1 conversationBean1;
   }
© www.soinside.com 2019 - 2024. All rights reserved.