hej,
mam proste www w icefaces. wyswietlam dane o uzytkownikach z bazy do dataTable. Mam na nich akcje typu "edit" oraz "remove". Tzn przy kazdym uzytkowniku mam w dodatkowej tabeli 2 przyciski (edit i remove). Jak klikne na edit to pojawia mi sie tryb edycji, po jej zapisaniu uaktualniaja sie dane w bazie i od razu tez w tabelce. Gorzej jest przy akcji remove-pozycja usuwana jest z bazy, ale tabela sie nie odswieza. Mam 2 klasy - jedna reprezentuje liste uzytkownikow, a druga - pojedynczego uzytkownika:

public class UsersList {

   private ArrayList<UserBean> usersBeanList;
   private int usersBeanListSize;

   public UsersList() {
      getUsersList();
   }

   public ArrayList<UserBean> getUsersBeanList() {
      return usersBeanList;
   }

   public void setUsersBeanList(ArrayList<UserBean> usersBeanList) {
      this.usersBeanList = usersBeanList;
   }

   public int getUsersBeanListSize() {
      return usersBeanList.size();
   }

   public String login() {
      return "login";
   }

   public void removeUser(ActionEvent ev) {

      UserBean userBean = (UserBean)ev.getComponent().getAttributes().get("userBean");
   //logika zwiazana z usunieciem uzytkownika z bazy

           //usuwam go tez z listy      
         usersBeanList.remove(userBean);
      }

   }

   private ArrayList<UserBean> getUsersList() {
     //logika zwiazana z pobraniem listy uzytkownikow z bazy
      return usersBeanList;
   }
}

 
public class UserBean {

   private int id;
   private String name;
   private String surname;
   private String email;
   private String phone;
   private String birthdate;
   private boolean showAdditionalInfo;
   private boolean edit;
   private boolean removed;

   public UserBean() {

   }

   public UserBean(int id, String name, String surname, String email, String phone, String birthdate) {
      this.id = id;
      this.name = name;
      this.surname = surname;
      this.email = email;
      this.phone = phone;
      this.birthdate = birthdate;
   }

//gettery i settery 

   public void saveUser() {
             //logika zwiazna z zapisaniem (updatem) uzytkownika
    
      }
   }

 

w faces-config.xml mam:

 
   <managed-bean>
      <managed-bean-name>usersList</managed-bean-name>
      <managed-bean-class>test.beans.UsersList</managed-bean-class>
      <managed-bean-scope>session</managed-bean-scope>
   </managed-bean>
      <managed-bean>
      <managed-bean-name>userBean</managed-bean-name>
      <managed-bean-class>test.beans.UserBean</managed-bean-class>
      <managed-bean-scope>session</managed-bean-scope>
   </managed-bean>

i po stronie icefaces:

               <ice:dataTable
                  rendered="#{usersList.usersBeanListSize != 0}"
                  value="#{usersList.usersBeanList}"
                  columnClasses="columnsColumn"
                  var="item"
                  rows="#{usersList.usersBeanListSize}">

//jakies tam kolumny i wyswietlane info i potem to cale usuwanie:

                  <ice:column style="width:220px; height:15px;" rendered="#{auth.logged==true}">
                     <f:facet name="header">
                        <ice:outputText value="Actions"/>
                     </f:facet>
                     <div align="center">
                        <ice:commandButton id="remove_user" value="remove" actionListener="#{usersList.removeUser}">
                           <f:attribute name="userBean" value="#{item}"/>
                        </ice:commandButton>
                     </div>
                  </ice:column>

               </ice:dataTable>


 

czyli wywolywana jest akcja removeUser. z bazy uzytkownik znika-ale w tabeli jest nadal widoczny. nie wiem jak to zrobic by tabela automatycznie usuwala tez te pozycje.

bede wdzieczna za wszystkie podpowiedzi i wskazowki!

                pzdr,

misty