在托管 bean 中注入 Sessionscoped bean 时出现问题

发布于 2024-08-27 23:15:31 字数 735 浏览 4 评论 0原文

我有一个 Session 作用域 bean

@SessionScoped
public class UserData implements Serializable {

private String uid;

public String getUid() {
    return uid;
}

public void setUid(final String uid) {
    this.uid = uid;
}

我正在无状态会话 bean 中的 SessionScoped bean 中设置一个值

public void setOperator(final Operator operator) {
    userData.setUid(operator.getId());
}

当我尝试使用 @Inject 获取对象时,我只得到 null

@ManagedBean(name = "RoleController")
@SessionScoped
public class RoleController {

...

@Inject
private UserData userData;

...

public UserData getUserData() {
    System.out.println("ID");
    System.out.println(userData.getUid());

我有一个 bean.xml

I have a Session scoped bean

@SessionScoped
public class UserData implements Serializable {

private String uid;

public String getUid() {
    return uid;
}

public void setUid(final String uid) {
    this.uid = uid;
}

I'm setting a value in a SessionScoped bean in my stateless session bean

public void setOperator(final Operator operator) {
    userData.setUid(operator.getId());
}

When I try to get the object with @Inject I only get null

@ManagedBean(name = "RoleController")
@SessionScoped
public class RoleController {

...

@Inject
private UserData userData;

...

public UserData getUserData() {
    System.out.println("ID");
    System.out.println(userData.getUid());

I have a bean.xml

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

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

发布评论

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

评论(1

↙温凉少女 2024-09-03 23:15:31

替换

@ManagedBean(name = "RoleController")

@Named("RoleController")

并确保您为这两个类导入 javax.enterprise.context.SessionScoped 而不是 javax.faces.bean.SessionScoped。

Replace

@ManagedBean(name = "RoleController")

with

@Named("RoleController")

and ensure you are importing javax.enterprise.context.SessionScoped and not javax.faces.bean.SessionScoped for both of your classes.

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