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

发布于 2024-10-18 16:58:59 字数 411 浏览 1 评论 0 原文

我正在使用 JSF 2.0,

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

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

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

我不知道如何实施。我希望 AddAddressBean.java 应该是独立的(这样我可以将它与其他 bean 一起使用),所以我更希望 AddAddressBean.java 不知道其他 bean。

你能帮我吗? =)

BR 卡尔

I'm working with JSF 2.0

I have a form in my admin section where I am going to select some users in a list.

The form (selectusers.xhtml) is adding these users to a list in a bean (SelectUsers.java).

After I have selected some user(s), I will pass the list of the user(s) from SelectUsers.java to another bean (AddAddressBean.java) and continue add information in another form (addadress.xhtml) which set other properties related to AddAddressBean for each user.

I do not know how to implement it. I would like that AddAddressBean.java shall be independent (so I can use it together with other beans), so I prefer that AddAddressBean.java shall not know about other beans.

Can you please help me? =)

B.R Carl

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

别再吹冷风 2024-10-25 16:59:00

我很快想到了几件事情:

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

Several quick things come to mind :

  1. Perhaps you could have a single bean only for those related pages, using @SessionScoped or the shorter CDI's @ConversationScope, or and this is the best of the three, the DeltaSpike @ViewAccessScoped
  2. When clicking the button on page 1 where it'll take you to page 2, in the 1st bean, you can make use of Flash object to store objects you want to pass, and in the second bean's @PostConstruct method, you could get all the objects from the Flash object
  3. If you dont mind using session scope, you can still have 2 beans, and one bean can refer to another bean using the jsf way(@ManagedProperty), or the Java EE inject way(@Inject) or the spring way if you use spring (@Autowired)
触ぅ动初心 2024-10-25 16:59:00

这就是我的实现方式(正如 @bertie 所说,使用 ConversationScoped )。

豆 1:

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

  }

豆 2:

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

This how i implemented (used ConversationScoped as @bertie said ).

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;
   }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文