Повторное создание управляемого JSF-компонента в рамках сеанса программно

Я использую Mojarra 2.1.29 и имею управляемый bean-компонент JSF

@ManagedBean
@SessionScoped
public class UserContext{

   //staff

}

и бобовые:

public class UserReproducer{
    private User user;

    public void reporoduce(){
        if(user == null){
            //Here I need to recreate the userContext managed bean
            //do some other staff
        }
    }
}

На самом деле, мне нужна какая-то настраиваемая область видимости в JSF, т.е. userContext боб с нуля, когда условие выполнено. Можно ли как-то это сделать? Под воссозданием я имею в виду очистку всех его свойств, как это было создано впервые.

1 ответ

Решение

Сделайте недействительным сеанс, чтобы уничтожить bean-объект сессионной области:

FacesContext.getCurrentInstance().getExternalContext().invalidateSession();

Другой вариант выхода из Spring Security - очистить контекст:

SecurityContextHolder.clearContext();
Другие вопросы по тегам