Сохранение атрибутов сеанса в объекте (Java) - PullRequest
1 голос
/ 16 февраля 2011

Как я могу сохранить атрибуты сеанса в классе, используя Java и JSF? Есть ли какая-нибудь аннотация, которая помогает мне это сделать? Помогите, мне нужны некоторые атрибуты сеанса, и я думаю, будет лучше, если я сохраню их в Object. Если вы, ребята, тоже знаете команду, чтобы сохранить по-другому, я был бы признателен.

Ответы [ 2 ]

3 голосов
/ 16 февраля 2011

Просто используйте @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().

0 голосов
/ 16 февраля 2011

EL выражение для доступа к объектам в карте сеанса

<h:inputText id="sample" value="#{sessionScope.someProperty}"/>
...