removing data from session

10,002

Your code is removing the attribute named after the user, but it does not remove the user from the list. To do so:

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());
Share:
10,002
sarah
Author by

sarah

Updated on June 04, 2022

Comments

  • sarah
    sarah almost 2 years

    I am using the following code to remove a attribute from 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());
        }
    }
    

    The final size after removing is still one as before, where am I going wrong?