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

Struts 1 Java Discussion :

Traitement Ajax dans Javascript avec Struts


Sujet :

Struts 1 Java

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Ingénieur SI
    Inscrit en
    Juillet 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur SI
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 7
    Points : 8
    Points
    8
    Par défaut Traitement Ajax dans Javascript avec Struts
    Bonjour,

    J'utilise Struts2 et j'ai une action liée à une JSP et du Javascript (avec de l'Ajax) qui, selon le résultat, m'affiche soit un message d'erreur, soit m'envoie sur une autre page.

    Lors d'un traitement Ajax, j'ai eu les deux comportements différents : celui censé se produire lors d'une erreur, puis celui censé se produire lorsque cela fonctionne.
    Je n'arrive pas à comprendre l'enchainement...

    Mon action : maClasseAction.java
    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
        public String execute() 
        {
            String result = "";
            ClasseA monA = new ClasseA();
            try
            {
                monA = this.monBean.getMonA(x);
                if(machin = true)
                {
                    this.getSession().put(SessionConstantes.petitA, monA);
                    result = SUCCESS;
                }
                else
                {
                    this.addActionError(codeErreur);
                    result= ERROR;
                }
            }
            catch (MonException e)
            {
                this.addActionError(e.getMessageErreur());
            }
            this.setMessagesErreur(this.getJsonErreurs());
            return result;
        }
    Mon code javascript :
    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
    function loadMaPagePage(x){
    $.ajax({
            url : "maClasseAction.action",
            dataType : "json",
            cache : false,
            data : {
                monX : x
            },
            success : function()
            {
                // pop up dossier
                alert('succes');
                window.open ('monAutreClasseAction.action');    
            },
            error :
            //message d'erreur
            alert('erreur');
            writeMessageError("Erreur technique : Ajax"),
        });
    };
    Mon fichier struts.xml (au cas où)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <action name="maClasseAction"  class="maClasseAction" >
        <result name="success" type="json"></result>
        <result name="error" type="json"></result>
    </action>
    Pour tester, j'ai mis ma variable "machin" à false.

    Mon résultat : affichage de "erreur", puis affichage de "succes" et ouverture de la page correspondant à mon autre action.

    Quelqu'un saurait-il m'expliquer comment résoudre ce problème ?

    Merci d'avance pour votre aide.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Salut,

    déjà il y a deux choses étranges:

    - Dans Error, tu n’utilises pas de function(){} pour le retour.
    - Il me semble que le retour Ajax est en fonction des codes retour serveur (400 200 OK, 404 Page not found, etc..). Or dans ton cas, la logique "erreur" est plus fonctionnelle que technique.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Ingénieur SI
    Inscrit en
    Juillet 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur SI
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Merci de ta réponse rapide!

    Effectivement je n'avais pas mis function(){}, en fait à force d'essayer des choses j'avais enlevé... mais au final ça me donne le même résultat.

    Pour ce qui est de l'Ajax, dans toute l'application c'est utilisé de la même façon, avec des erreurs fonctionnelles.

    J'ai l'impression que je passe à côté de quelque chose de très gros, mais que je ne vois pas quoi...

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    As-tu bien vidé le cache du navigateur ?

    Utilises-tu un outil comme Firebug ? Ca te permettrait de voir ce qui se passe dans le Javascript grâce à des points d’arrêt, et de voir si le statut de la requête venant du serveur est bien 200 OK (Et non 400 comme j'avais écris dans le premier message).

    Pour error, tu peux ajouter les attribut suivant dans la function() et les afficher dans ton alert() ça peut aider: textStatus, errorThrown.

Discussions similaires

  1. [WD20] Problème de traitement Ajax dans le mode AWP de webdev.
    Par Anir.Ayyaw dans le forum WinDev
    Réponses: 3
    Dernier message: 07/04/2015, 18h32
  2. Affichage dans JSP avec Struts 2
    Par fruwen7 dans le forum Struts 2
    Réponses: 0
    Dernier message: 10/09/2012, 12h20
  3. Integrer AJAX dans une portlet Struts
    Par aboualhassen dans le forum Struts 1
    Réponses: 8
    Dernier message: 22/04/2008, 14h10
  4. Ajax dans mon application struts
    Par jalam dans le forum Struts 1
    Réponses: 14
    Dernier message: 22/12/2007, 17h13
  5. [debutant] Ajax frameworks compatibles avec struts
    Par saif_21 dans le forum Struts 1
    Réponses: 10
    Dernier message: 21/08/2006, 09h58

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