从会话中删除数据

时间:2010-04-21 06:39:29

标签: java session

我使用以下代码从会话中删除属性

List<User> l=(List<User>) sess.getAttribute("allUserslist");
for(int ii=0;ii<l.size();ii++){
    System.out.println("bef"+l.get(ii).getLoginName()+optionSelected[i]);
    if(l.get(ii).getLoginName().equals(optionSelected[i])){
        System.out.println("in iteration");
        sess.removeAttribute(l.get(ii).getLoginName());
        List<User> l1=(List<User>) sess.getAttribute("allUserslist");
        System.out.println("final size"+l1.size());
    }
}

移除后的最终尺寸仍然像以前一样,我哪里错了?

1 个答案:

答案 0 :(得分:0)

您的代码正在删除以用户命名的属性,但它不会从列表中删除该用户。为此:

List<User> l=(List<User>) sess.getAttribute("allUserslist");
for(int ii=0;ii<l.size();){
    System.out.println("bef"+l.get(ii).getLoginName()+optionSelected[i]);
    if(l.get(ii).getLoginName().equals(optionSelected[i])){
        System.out.println("in iteration");
        l.remove(ii)); // Remove user from the list
    } else {
        ++ii;
    }
}

List<User> l1=(List<User>) sess.getAttribute("allUserslist");
System.out.println("final size"+l1.size());