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

Bibliothèques & Frameworks Discussion :

Passage de la valeur grid.selection.getSelected() a une fonction java au niveau servlet [Dojo]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2010
    Messages : 80
    Par défaut Passage de la valeur grid.selection.getSelected() a une fonction java au niveau servlet
    bonsoir le monde , je debute dans dojo ,et j'ai besoin d'une aide .
    en effet,j'ai crée un formulaire a remplir,les champs insérés alimentent une base de donnée mysql ,et aussi un tableau(grid),ce tableau contient 2 bouttons ajouter(pour invoquer le formulaire) et supprimer .
    jusque la tout va bien : le tableau est bien alimenté par les objets ajoutés ,quand je selectionne un objet dans la grid et que je le supprime,ca marche ,mais seulement au niveau de la grid ,pas dans la BD . je ne sais pas comment je vais proceder pour supprimer l'objet de la base de donnée (passer la valeur du champs selectionnée a la fonction de suppression) .
    concretement :


    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
     
           function deletegrid()
    {    var items = grid.selection.getSelected();
        if(items.length){
            dojo.forEach(items, function(select) {
                if(select !== null) {
                    store.deleteItem(select);
         dojo.xhrGet({
    // l'url de la servlet qui sera l'intermediaire entre dojo et le traitement niveau ejb        
    url: 'DelFromDatabase',
            load: donneeSup,
            error: donneePasSup,
           content: items
        });
                }})
    }}

    niveau servlet
    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
     
    @WebServlet(name = "Sup", urlPatterns = {"/DelFromDatabase"})
    public class Sup extends HttpServlet {
        @EJB
    //le type GestionnaireDeContacts  fait reference a mon EJB session (la ou je definis les fct getOne et suprimer)
        private GestionnaireDeContacts gestionnaireDeContacts;
     
       protected void processRequest(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
     
     //ici je lui passe comme parametre l'id num 1 ,normalement je dois lui fournir la valeur associé a la casé selectionné dans la grid (grid.selection.getSelected())!!
    Contact c=gestionnaireDeContacts.getOne(1);
        gestionnaireDeContacts.suprimer(c);
    merci d'avance pour votre aide

  2. #2
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2010
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2010
    Messages : 322
    Par défaut
    Bonjour,

    Ton code me semble correct, tout comme ton raisonnement. Je ne vois pas ou est le soucis. Si c'est au niveau de la valeur a envoyer au servlet, je pense que la clé primaire est suffisante plutôt que "items".

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2010
    Messages : 80
    Par défaut
    normalement il faut inserer a la place de 1 ,la clé primaire de la case selectionné dans la grid
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Contact c=gestionnaireDeContacts.getOne(1);
    voici la fonction getOne et suprimer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public void suprimer(Contact art)
            {
     Contact person = em.merge(art);
    	em.remove(person);
    	}
     
     
        public Contact getOne(int id){
        return em.find(Contact.class,id);
        }
    j'arrive toujours pas a imaginer comment dojo communiquera cette valeur de ID a ma fonction getOne !

  4. #4
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2010
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2010
    Messages : 322
    Par défaut
    Ce n'est pas dojo qui doit identifier la valeur de ton ID
    Tu dois lui envoyer toi même la valeur que tu as dans ta ligne sélectionnée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(select !== null) {
            monID = monGrid.store.getValue(select, "id");
            store.deleteItem(select);
    ...
    Cette commande te permet de récupérer la valeur de la cellule ("id") dans ta ligne sélectionnée. C'est cette valeur que tu dois envoyer.

    Ensuite via le xhrGet, tu envoies la valeur au servlet. Je ne connais pas Java du coup je ne peux pas te dire quelle commande il faut utiliser pour récupérer les GET ou les POST des pages html. Par contre, je te conseille plutôt le xhrPost c'est plus discret qu'un get.
    Par exemple :

    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
    var xhrArgs = {
    	url:"DelFromDatabase",
    	postData: "ID="+monID,
    	handleAs: "text",
    	error: function(error) {
    		//W
    	        alert(error);
    	}
    }
    //Call the asynchronous xhrPost
    var deferred = dojo.xhrPost(xhrArgs);
    deferred.addCallback(function(data) {
             //permet de traiter la valeur de retour
             donneeSup;
             //ou
             donneePasSup;
    }
    J'espere que ce sera assez clair

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2010
    Messages : 80
    Par défaut
    merci encore pour votre reponse ,j'irais voir ce que ca donne

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2010
    Messages : 80
    Par défaut
    j'etais occupé avec des trucs ,c pour cela que jai tardé a repondre
    ca marche trés bien ,merci pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer la valeur du selected item d'une combobox
    Par Flora2013 dans le forum Langage
    Réponses: 3
    Dernier message: 05/06/2014, 14h01
  2. Réponses: 3
    Dernier message: 07/06/2007, 19h47
  3. Réponses: 7
    Dernier message: 16/03/2007, 19h28
  4. Réponses: 4
    Dernier message: 19/05/2006, 10h26
  5. Réponses: 2
    Dernier message: 09/01/2006, 09h38

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