我有和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。
就像我的观察者在不同的对话中一样。
我可以为同一个用户会话激活多个会话吗?
更新: 当我将导航规则更改为重定向时,代码可以正常工作。
答案 0 :(得分:0)
难道你没有开始谈话吗?然后,您将获得每个请求的新会话。将对话注入两个bean并调试其状态/ id应该可以解决问题。