CommandButton avec action (JSF - Java EE - Web app)
Bonjour,
je développe une application web en Java EE avec un serveur Payara en local.
je suis confronté à un problème dont je ne trouve pas la solution.
j'ai une page où il est possible d'ajouter des étudiants à un séminaire mais aussi de supprimer ceux qui sont déja ajouté au séminaire, cependant pour ce qui de l'ajout tout s'effectue correctement mais pour la suppression la méthode n'est même pas lancée (test en debug) :/
Du coup auriez vous une idée car je bloque complètement :/
Merci d'avance ;)
Voici mon code xHtml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| <!DOCTYPE html>
<html xmlns:jsf="http://xmlns.jcp.org/jsf"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:b="http://bootsfaces.net/ui">
<h:head>
<meta charset="UTF-8" />
<title>Ajouter séminaire</title>
</h:head>
<h:body>
<ui:include src="include/menu.xhtml" />
<b:panel style="margin-top:60px">
<h:form>
<b:dataTable value="#{etudiantController.getEtudiantsSection(seminaireController.section)}"
var="etudiant">
<b:dataTableColumn value="#{etudiant.id}" />
<b:dataTableColumn value="#{etudiant.nom}" />
<b:dataTableColumn value="#{etudiant.prenom}" />
<b:dataTableColumn value="#{seminaireController.verifEtudiantInscrit(etudiant)}" label="Ajouter ou supprimer">
<b:commandButton value="Ajouter" action="#{seminaireController.ajouterEtudiant(etudiant)}" iconAwesome="plus" rendered="#{seminaireController.isVisibleAdd()}"/>
<b:commandButton value="Supprimer" action="#{seminaireController.supprimerEtudiant(etudiant)}" iconAwesome="trash" rendered="#{seminaireController.isVisibleDelete()}"/>
</b:dataTableColumn>
</b:dataTable>
</h:form>
</b:panel>
</h:body>
</html> |
La méthode supprimerEtudiant(etudiant) ne se lance pas.
Voici le code de mon controller :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
@Named
@SessionScoped
public class SeminaireController implements Serializable{
/**
*
*/
private boolean visibleAdd = true;
private boolean visibleDelete = false;
private static final long serialVersionUID = 1L;
@EJB
private GestionSeminaireEJB gestionSeminaire;
private List<Seminaire> seminaires = new ArrayList<Seminaire>();
private Seminaire seminaire;
private String section;
public SeminaireController() {}
public void init() {
seminaire = new Seminaire();
}
public boolean isVisibleAdd() {
return visibleAdd;
}
public boolean isVisibleDelete() {
return visibleDelete;
}
public void verifEtudiantInscrit(Etudiant etu) {
int res = gestionSeminaire.etudiantInscrit(seminaire.getId(),etu.getId());
if(res == 0) {
visibleAdd = true;
visibleDelete = false;
}else {
visibleDelete = true;
visibleAdd = false;
}
}
public Seminaire getSeminaire() {
if(seminaire == null) {
init();
}
public String ajouterEtudiant(Etudiant e) {
Etudiant tmpEtudiant = e;
tmpEtudiant.setId(e.getId());
seminaire.ajouterEtudiant(tmpEtudiant);
gestionSeminaire.updateSeminaire(seminaire);
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Etudiant ajouté au séminaire : " + seminaire.getNomSeminaire(), null));
return "AjouterEtudiantSeminaire.xhtml?face-redirect=true";
}
public String supprimerEtudiant(Etudiant e) {
gestionSeminaire.deleteSemiEtudiant(e.getSection(), e.getId());
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Etudiant supprimé du séminaire : " + seminaire.getNomSeminaire(), null));
return "AjouterEtudiantSeminaire.xhtml?face-redirect=true";
}
} |