Перезагрузка таблицы данных со значениями из базы данных

В настоящее время у меня есть таблица данных, в которой отображается список пользователей, полученных из моей базы данных (таблица пользователей). Мое приложение позволяет мне делать следующее:

  • Выберите группу
  • Выберите пользователя
  • Добавлять
  • В таблице данных UserGroups отображаются добавленные группа и пользователь.

Добавленный пользователь не будет отображаться в таблице данных пользователя, то есть он не будет отображаться только в представлении. Однако пользователь по-прежнему существует в таблице базы данных.

(Это происходит в моем веб-представлении)

Например:

Group:

 1. Web
 2. Projects
 3. Management

User:

 1. Tom
 2. Jane
 3. John

Я выбираю 1 группу и 1 пользователя и добавляю их в группу пользователей.

UserGroup:

 1. Management, John

И таблицы пользователей и групп показывают следующее:

Группа:

 1. Web
 2. Projects
 3. Management

Пользователь:

 1. Tom
 2. Jane

Как мне обновить таблицу пользователей, чтобы я мог получить новый список пользователей из моей базы данных для другого раунда выбора?? потому что, как только я добавлю всех пользователей, таблица пользователей станет пустой, и я хочу, чтобы таблица данных пользователей обновлялась, когда я нажимаю новую группу для выбора.

Любые подсказки или предложения о том, как я могу это сделать... Я не знаю.

В настоящее время у меня есть следующие методы в моем manageBean:

Мои методы получения списка пользователей, групп и групп пользователей.

 public List<Usuarious> getListOfUsuarios() throws DAOExceptions{
        List<Usuarious> usuariosList = userDAO.list();
        listOfUsuarios = usuariosList;
        return listOfUsuarios;
    }

    public List<Grupos> getListOfGrps() throws DAOExceptions {
        List<Grupos> grpList = grpDAO.list();
        listOfGrps = grpList;
        return listOfGrps;
    }

    public List<UsuariousGrupos> getListOfUserGroups() throws DAOExceptions{
        List<UsuariousGrupos> usuariosGruposList = userGrpDAO.list(var2);
        listOfUserGroups = usuariosGruposList;
        return listOfUserGroups;
    }

Я думал просто создать метод refreshList():

   public void refreshList() throws DAOExceptions{
        listOfUsuarios = getListOfUsuarios();
    }

А затем добавьте его в список методов FinishAddUser(), чтобы обновить таблицу данных:

   public void finishAddUsuariosGrupos()throws DAOExceptions {
        this.userGroups.setId_grupo(var2);
        this.userGroups.setId_usuario(var1);
        userGrpDAO.create(userGroups);
        refreshList();

    }

Но это не работает.


person ShaunK    schedule 25.11.2011    source источник
comment
если у вас уже есть какая-то реализация и вы хотите чего-то большего, покажите нам, что у вас уже есть...   -  person spauny    schedule 25.11.2011
comment
да, я добавил часть своего кода   -  person ShaunK    schedule 25.11.2011
comment
код xhtml тоже... кстати, метод refreshList бесполезен - вы назначаете тот же объект listOfUsuarios... вы можете напрямую использовать метод getListOfUsuarios   -  person spauny    schedule 25.11.2011
comment
Похоже, что userGrpDAO.create() и userDAO.list() выполняются в разных транзакциях и что они фиксируются только в конце ответа (или, вероятно, никогда). Какую настойчивость вы используете? JPA? Спящий режим? Обычный JDBC? В конце концов, это не проблема JSF.   -  person BalusC    schedule 25.11.2011
comment
Кроме того, BalusC, я следил за вашим руководством в блоге, чтобы создать методы create() и list() для моих DAO JDBC.   -  person ShaunK    schedule 25.11.2011


Ответы (1)


У меня была аналогичная проблема с обновлением данных. Я решил это, добавив settimeout в таблицу данных:

<webuijsf:table onClick="setTimeout('#{user$reports.updateGeneratedReportList()}',500);"/>

Метод updateGeneratedReportList равен вашему методу refreshList.

person lamostreta    schedule 25.11.2011
comment
ОП не использует Вудсток. ОП использует PrimeFaces. Подходы, специфичные для библиотеки компонентов, не обязательно работают для других библиотек компонентов. - person BalusC; 25.11.2011
comment
Обратите внимание на то, как ... как только вы используете Primefaces, вы можете воспользоваться всей его мощью ~ - person spauny; 25.11.2011
comment
да, я использую PrimeFaces. Вы имеете в виду, что я могу использовать теги, чтобы обновить его в моем представлении ?? - person ShaunK; 25.11.2011
comment
Я думал, что простой JS может работать в других библиотеках компонентов... а может и нет. - person lamostreta; 25.11.2011