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 2 Java Discussion :

Besoin d'explication Ajax JSON


Sujet :

Struts 2 Java

  1. #1
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut Besoin d'explication Ajax JSON
    Bonjour.

    Pour une fois, je viens demander quelque chose suite à quelque chose qui fonctionne (ça change).

    Voilà. Dans mon application (avec Struts 2), j'utilise une requête ajax avec JSON.

    Voici mon code .js
    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
            function RechercheAjax (avis){    
                $.ajax({
                    type: 'GET',
                    headers :{ Accept : 'application/json; charset=utf-8', 'Content-Type' : "application/json; charset=utf-8"},
                    url: 'chercher_ligne',
                    data: {avis:avis},
                    success :function(response){
                        $('#testAjax').html(response.element.flag)
                        $('#errorMsg').html(response.element.result)
     
     
                        if(response.element.flag == 1 || response.element.flag == 2){
                            $('#modalDivTempElement').css('display','block')
                            $('#MsgElement').html(response.element.result)
                        }
                        if(response.element.flag == 3){
                            $('#modalDivNotFound').css('display','block')
                            $('#MsgNoElement').html(response.element.result)
                        }
                    } 
                })
            }
    Je ne suis pas sûr que le code soit nickel ni même des plus optimisé mais il a le mérite de fonctionner.
    Je me suis bien sûr aidé de code trouvé sur le net pour l'adapter à mes besoins.

    Toutefois, j'aurais bien voulu comprendre la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    headers :{ Accept : 'application/json; charset=utf-8', 'Content-Type' : "application/json; charset=utf-8"},

    Mis à part le fait que ça a l'air de parler d'encodage utf-8, je ne situe pas trop le reste dans le contexte/.

    Coté struts.xml, j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        <package name="json" namespace="/pilotage" extends="json-default">        
            <action name = "chercher_ligne" class="test.Ajax.LigneAjax" method="testJSON">
                <result type="json">
                    <param name="root">jsonData</param>
                </result>
            </action>
        </package>
    Ici, pas vraiment de problème sauf la valeur root de l'attribut name de la balise <param>.

    Des explications si possible SVP. Je dormirais moins con

    Merci d'avance.

  2. #2
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut
    Pour une fois que je ne pose pas une question suite à un problème, j'ai pas de réponse ??


    Bon, pas grave. Je vais attendre ^^

  3. #3
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 1 679
    Points
    1 679
    Par défaut
    Citation Envoyé par FCL31 Voir le message
    Toutefois, j'aurais bien voulu comprendre la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    headers :{ Accept : 'application/json; charset=utf-8', 'Content-Type' : "application/json; charset=utf-8"},

    Mis à part le fait que ça a l'air de parler d'encodage utf-8, je ne situe pas trop le reste dans le contexte/.
    Bonjour,

    cf : https://webmasters.stackexchange.com...e-http-headers

    En simplifiant (plus détaillé sur stackexchange) :
    - l'en-tête Accept indique le type de données que le serveur accepte de recevoir.
    - le Content-Type indique le type de données que le serveur peut générer.
    'application/json' est bien entendu le type MIME pour JSON (cf première réponse de https://stackoverflow.com/questions/...n-content-type)

    Dans ton exemple, l'application accepte du json et en produit.

  4. #4
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut
    Bonjour.

    Merci avec retard pour tes explications.

    Toutefois, ce que je ne comprend vraiment pas c'est le "root" de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <param name="root">jsonData</param>
    Merci d'avance

  5. #5
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 1 679
    Points
    1 679
    Par défaut
    Citation Envoyé par FCL31 Voir le message

    Toutefois, ce que je ne comprend vraiment pas c'est le "root" de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <param name="root">jsonData</param>
    Bonjour,

    Il s'agit de définir l'objet qui doit être sérialisé. Là je pense que c'est l'ensemble de la réponse JSON. Il serait possible d'indiquer un autre niveau.
    Cf http://struts.apache.org/plugins/json/#root-object
    et https://stackoverflow.com/questions/...struts2-action

    Cordialement,

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Cincinnatus Voir le message
    Bonjour,

    cf : https://webmasters.stackexchange.com...e-http-headers

    En simplifiant (plus détaillé sur stackexchange) :
    - l'en-tête Accept indique le type de données que le serveur accepte de recevoir.
    - le Content-Type indique le type de données que le serveur peut générer.
    'application/json' est bien entendu le type MIME pour JSON (cf première réponse de https://stackoverflow.com/questions/...n-content-type)

    Dans ton exemple, l'application accepte du json et en produit.
    en l'occurence ici c'est plutot l'inverse. Vu que ce sont les header mis par le client sur la requête, Content-Type informe le serveur que le client envoie la requête encodée en Json et le header Accept informe le serveur que le client n'acceptera une réponse qu'en JSON.

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/10/2013, 09h21
  2. Besoin d'explications sur un bout de code
    Par zizitop dans le forum C
    Réponses: 7
    Dernier message: 26/04/2005, 14h51
  3. [C#] J'aurais besoin d'explication
    Par Roach- dans le forum Windows Forms
    Réponses: 18
    Dernier message: 10/03/2005, 16h00
  4. Besoin d'explications sur float et l'élasticité !
    Par KneXtasY dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 14/01/2005, 15h15
  5. [Foreign Key] Besoin d'explication.
    Par Andry dans le forum Débuter
    Réponses: 4
    Dernier message: 28/05/2003, 11h34

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