Я занимаюсь разработкой сайта на 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>
Спасибо заранее;)