0

我将 CDI bean UserController 注释为 @ConversationScope 并带有一个名为 user 的属性,其中暴露了 getter 和 setter。

@ConversationScoped
@Named("userController")
public class UserController implements Serializable {

    private User user;

    @PostConstruct
    public void init() {
        this.user = new User();
    }

    //getters and setters ommited...

}

我的观察员也有第二节课。

@ConversationScoped
public class UserObservers implements Serializable {

    @Inject private UserController controller;

    public void createObserver(@Observes @MyQualifier MyEvent event) {

        this.controller.getUser().setName("Test Name");

    }
}

用户属性填充在我的界面中,我希望我的观察者更改用户的名称,但用户属性始终返回 null。

就像我的观察者位于不同的对话中一样。

我可以为同一个用户会话启用多个会话吗?

更新:当我将导航规则更改为重定向时,代码可以正常工作。

4

1 回答 1

0

会不会是你没有开始谈话?然后,您将获得每个请求的新对话。将对话注入两个 bean 并调试其状态/ID 肯定会揭示问题。

于 2012-07-03T04:07:38.303 回答