1

我正在使用 Mojarra 2.1.29 并且有一个会话范围的 JSF 托管 bean

@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满足条件时从头开始重新创建 bean。有可能以某种方式做吗?通过重新创建,我的意思是在第一次创建时清理它的所有属性。

4

1 回答 1

-1

使会话无效,以销毁会话范围的 bean:

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

从 Spring Security 注销的另一个选项是清除上下文:

SecurityContextHolder.clearContext();
于 2015-06-08T10:21:55.310 回答