Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: ShaunKОтветов: 1

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

  • Выберите группу
  • Выберите пользователя
  • Добавлять
  • В таблице данных 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();

    }

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

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

javaprimefaces

Ответы

Ответ 1 · lamostreta

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

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы