Просто используйте @SessionScoped
@ManagedBean
.
@ManagedBean
@SessionScoped
public class SessionBean {
private SomeObject someObject; // +getter+setter
}
Вы можете получить к нему доступ из других управляемых bean-компонентов с помощью @ManagedProperty
.
@ManagedBean
@RequestScoped
public class OtherBean {
@ManagedProperty(value="#{sessionBean}")
private SessionBean sessionBean; // +setter
public void someAction() {
SomeObject someObject = sessionBean.getSomeObject();
// ...
}
}
Или, если вы действительно настаиваете на том, чтобы хранить его вне управляемых компонентов, используйте карту сеанса.
Map<String, Object> sessionMap = externalContext.getSessionMap();
sessionMap.put("someObject", someObject);
Он будет доступен в других бобах к
Map<String, Object> sessionMap = externalContext.getSessionMap();
SomeObject someObject = (SomeObject) sessionMap.get("someObject");
Отображается под крышками на HttpSession#get/setAttribute()
.