JSF 2.0在bean(或页面?)之间传递数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSF 2.0在bean(或页面?)之间传递数据相关的知识,希望对你有一定的参考价值。
我正在使用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
答案
想到几个快速的事情:
- 也许你只能为那些相关页面使用一个bean,使用@SessionScoped或更短的CDI @ConversationScope,或者这是三者中最好的,DeltaSpike
@ViewAccessScoped
- 单击第1页上的按钮,它将转到第2页,在第1个bean中,您可以使用Flash对象来存储要传递的对象,在第二个bean的@PostConstruct方法中,您可以获得所有Flash对象中的对象
- 如果您不介意使用会话范围,您仍然可以使用2个bean,并且一个bean可以使用jsf way(@ManagedProperty)或Java EE注入方式(@Inject)或弹簧方式(如果使用spring)引用另一个bean( @Autowired)
另一答案
这是我如何实现的(使用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;
}
以上是关于JSF 2.0在bean(或页面?)之间传递数据的主要内容,如果未能解决你的问题,请参考以下文章
JSF 2.0 AJAX:使用 jsf.ajax.request(或其他方式)从 javascript 调用 bean 方法
在 JSF 2.0 中动态创建输入字段并将其链接到支持 bean