IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java EE Discussion :

CommandButton avec action (JSF - Java EE - Web app)


Sujet :

Java EE

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2019
    Messages : 41
    Points : 52
    Points
    52
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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";
        }
     
    }

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @Named
    @SessionScoped
    Fait attention avec l'utilisation de @SessionScoped, tu risques d'y avoir trop d'objets en session, regarde les autres portés @RequestScoped, @ViewScoped et voir ce qui te convient (dans le package javax.enterprise.context).
    Comme c'est du jsf, utilise aussi javax.faces.bean.ManagedBean au lieu de @Named. Je te l'ai déjà fait remarquer (si ce n'était pas d'autre membre).

    A+.

Discussions similaires

  1. Intégration du JSF BootsFaces (Web app - Java EE)
    Par MrBiscotto dans le forum Java EE
    Réponses: 4
    Dernier message: 17/07/2019, 15h44
  2. Réponses: 8
    Dernier message: 11/05/2013, 20h51
  3. Réponses: 7
    Dernier message: 26/10/2011, 15h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo