我将 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。
就像我的观察者位于不同的对话中一样。
我可以为同一个用户会话启用多个会话吗?
更新:当我将导航规则更改为重定向时,代码可以正常工作。