gpt4 book ai didi

jsf-2 - 从请求范围的 CDI Bean 访问 session 范围的 CDI bean

转载 作者:行者123 更新时间:2023-12-05 00:36:08 27 4
gpt4 key购买 nike

我已经有一个 session 范围的 CDI bean,它保持当前登录的用户数据。
现在,从另一个请求范围内,我想访问这个 bean 以获取一些数据。我有一些操作要做,这取决于用户登录。这是我需要的唯一信息。

如何访问它?

AccountBean.java:

@Named("accountBean")
@SessionScoped
public class AccountBean implements Serializable {
private static final long serialVersionUID = 16472027766900196L;

@Inject
AccountService accountService;

private String login;
private String password;
// getters and setters ommited
}

login.xhtml 的一部分:
<h:form>
<h:panelGrid columns="2">
#{msgs.loginPrompt}
<h:inputText id="login" value="#{accountBean.login}" />
#{msgs.passwordPrompt}
<h:inputSecret id="password" value="#{accountBean.password}" />
<h:commandButton value="#{msgs.loginButtonText}"
action="#{accountBean.login}" />
</h:panelGrid>
</h:form>

SearchBean.java:
@Named("searchBean")
@RequestScoped
public class SearchBean {
@Inject AccountBean accountBean;
// some other stuff
}

最佳答案

只需 @Inject 它。

@Inject
private Bean bean;

请注意,这在接收 bean 的构造函数中不可用(您看,不可能在未构造的实例中注入(inject)某些东西)。最早的访问点是 @PostConstruct 方法。
@PostConstruct
public void init() {
bean.doSomething();
}

关于jsf-2 - 从请求范围的 CDI Bean 访问 session 范围的 CDI bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8512206/

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