Обновите DataTable BootsFaces (xHtml с Java EE), используя BlockUI - PullRequest
0 голосов
/ 17 января 2019

Я занимаюсь разработкой сайта на Java EE. В этом можно загрузить файл Excel, добавив все его данные непосредственно в базу данных. Чтобы лучше защитить мою кнопку для загрузки, я настроил BlockUI. Хорошо работает, поэтому данные загружаются в базу данных. Но здесь проблема, как обновить datatable, потому что, когда я загружаю данные, ничего не появляется, тогда вы должны перезагрузить страницу, но она не вверху: / Так есть ли способ динамически обновить DataTable?

Вот мой BlockUIBean:

@ManagedBean
@ViewScoped
public class BlockUIBean implements Serializable {
  private static final long serialVersionUID = 1L;

  public void waitFiveSeconds() {

      try {
      Thread.sleep(5000);

    } catch (InterruptedException e) {

    }

  }

  public boolean isBlockUIActive() {
    String viewId = FacesContext.getCurrentInstance().getViewRoot().getViewId();
    if ("/forms/blockUI.xhtml".equals(viewId))
    return true;
    if("/bootstrap/SocialShare.xhtml".equals(viewId))
    return true;
    return false;
  }

}

Вот мой код xHtml:

<!DOCTYPE html>
<html lang="fr"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:b="http://bootsfaces.net/ui"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<h:head>
    <title>Afficher Etudiant</title>
</h:head>
<h:body>

    <ui:include src="include/menu.xhtml"></ui:include>

        <h:form enctype="multipart/form-data">
            <h:inputFile value="#{etudiantController.file}" styleClass="btn btn-info"></h:inputFile>
            <b:commandButton action="#{etudiantController.save()}" onclick="ajax:blockUIBean.waitFiveSeconds();"
                value="Charger" styleClass="btn btn-success" ajax="false" />
        </h:form>


<div class="container">
   <h:form>
      <b:dataTable value="#{etudiantController.getEtudiants()}"
                   var="etudiant">
        <b:dataTableColumn value="#{etudiant.nom}" />
        <b:dataTableColumn value="#{etudiant.prenom}" />
        <b:dataTableColumn value="#{etudiant.classe}" />

        <b:commandButton value="Supprimer" styleClass="btn btn-danger"
            action="#{etudiantController.deleteEtudiant(etudiant)}" />
      </b:dataTable>
    </h:form>
</div>

</h:body>
</html>

Спасибо заранее;)

...