gpt4 book ai didi

java - JSF : Passing an Object from one backing-bean to another backing-bean

转载 作者:行者123 更新时间:2023-11-30 03:41:51 24 4
gpt4 key购买 nike

我正在尝试为我在开发小型应用程序时遇到的一个小问题找出解决方案。我试图传递一个在一个支持 bean 中创建的对象,然后使用我在另一个支持 bean 中创建的同一对象。但是,我不想制作这些支持 bean @SessionScoped,并且最好不要使用 @ManagedBean,因为我正在使用 CDI JavaEE 应用程序。

我是否可以使用 CDI 注释并将一个支持 bean 注入(inject)到另一个支持 bean 中,然后能够访问之前创建的该对象?

作为示例,请引用以下 bean:

@Named
@ViewScoped
public RegisterController implements Serializable {

User user = new User();

// Getter and Setter methods which are populated by the JSF page
}

获取在上述 bean 中创建的对象 User 并在下面的 Controller 中使用它:

@Named
@ViewScoped
public PaymentController implements Serializable {

@Inject RegisterController registerController; // Injecting bean

registerController.getUser().getName(); //this is null when I try access the properties of the object 'User'. I am assuming this is because @ViewScoped annotated on the 'RegisterController' class?

// I would like to use the User object created in 'RegisterController' here an access properties etc...
}

我可以使用 CDI 提供的 @Inject 注释吗?

更新

好的,当我用 SessionScoped 注释注释 RegisterController 时,我已经完成了上述工作,但是我不希望这个 Bean 注释 SessionScoped 因为我可能会遇到进一步的影响,例如字段的预填充等...有什么想法如何以其他方式实现这一点吗?

最佳答案

嗯,@ViewScoped 太短,无法达到目的,而 @SessionScoped 太长。那为什么不使用@ConversationScoped呢?

参见here .

关于java - JSF : Passing an Object from one backing-bean to another backing-bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26688756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com