Повторное создание управляемого 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();