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

GWT et Vaadin Java Discussion :

rendu du RequestBuilder


Sujet :

GWT et Vaadin Java

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 21
    Points : 16
    Points
    16
    Par défaut rendu du RequestBuilder
    Bonjour les membres,

    je travaille actuellement sur un projet GWT+Struts2.

    Dans l'objectif d'invoquer un bean struts (Action) sans passer par le RPC, j'ai utilisé le requestBuilder.
    Dans mon bean je construis un fichier Excel et je le renvoie dans un objet HTTPServletResponse.

    Tout se passe bien sauf que je n'ai pas ma piece joint à la fin du traitement (dans onResponseReceived, la méthode response.geText() me retourne bel et bien la chaine que j'ai contruite dans mon bean) :

    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
    RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, url);
     
            try {
                builder.setHeader("Content-Type", "application/x-www-form-urlencoded");
                Request request = builder.sendRequest(postData, new RequestCallback() {
     
                    public void onError(Request request, Throwable exception) {
    ...
     
                    }
     
                    public void onResponseReceived(Request request, Response response) {
     
    ...
                    }
                });

    je ne sais pas si ceci provient du fait que dans mon bean j'utilise un javax.servlet.http.HttpServletResponse et dans mon callback je récupéré un
    com.google.gwt.http.client.Response.

    qqn a une piste?

    thinks

  2. #2
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Je ne comprend pas trop ton problème ?

    Je comprend qu'à partir du client (GWT), tu appelles via le request builder une url (celle de ton action struts probablement)

    Je comprend que coté serveur, dans ton action struts, tu écris quelque chose sur la réponse de la servlet. Quoi ? tu nous ne le dis pas ?

    Je comprend que côté client, tu reçois une réponse, un objet com.google.gwt.http.client.Response qui encapsule la réponse retournée par l'appel de l'url.

    Il est évident que côté client (GWT), tu reçois le flux retourné par la servlet et que ce flux doit être un flux texte (plain, xml, json, ...) Si ton action struts écrit du binaire en sortie, que vas tu en faire côté client dans ton code GWT ? N'oublie pas que le code de ta partie cliente sera compilé en javascript et que je vois mal ce que le javascript va faire de ton flux binaire ?

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    Bonjour benwit

    Citation Envoyé par benwit Voir le message
    Je comprend que coté serveur, dans ton action struts, tu écris quelque chose sur la réponse de la servlet. Quoi ? tu nous ne le dis pas ?
    Comme j'ai indiqué auparavant, coté serveur je construis un fichier excel en flux html et je l'envoie avec les paramétrés :
    response.setContentType("application/vnd.ms-excel");
    response.setHeader("Content-Disposition", "attachement; filename=" + nameDoc);


    Citation Envoyé par benwit Voir le message
    Si ton action struts écrit du binaire en sortie, que vas tu en faire côté client dans ton code GWT ? ?
    Coté client j'avais un souci pour faire apparaitre à l'utilisateur la fenêtre de téléchargement du fichier envoyée par le serveur.

    Solution:
    En fait, j'ai renoncé à l'utilisation du requestBuilder et j'ai fait l'appel à mon bean struts via le composant com.google.gwt.user.client.ui.Frame en passant comme paramètre l'url d'appel.

    Bonne journée

  4. #4
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Citation Envoyé par badi082 Voir le message
    Comme j'ai indiqué auparavant, coté serveur je construis un fichier excel en flux html et je l'envoie avec les paramétrés :
    [B] response.setContentType("application/vnd.ms-excel");
    response.setHeader("Content-Disposition", "attachement; filename=" + nameDoc);
    Là, c'est plus clair car dans ton premier post, tu parlais juste d'un envoi d'un fichier excel et les fichiers xls sont des fichiers binaires.

    Citation Envoyé par badi082 Voir le message
    En fait, j'ai renoncé à l'utilisation du requestBuilder et j'ai fait l'appel à mon bean struts via le composant com.google.gwt.user.client.ui.Frame en passant comme paramètre l'url d'appel.
    Pourquoi passer par une iframe, un hyperlien avec ton url ne suffit t'il pas ?

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

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

Discussions similaires

  1. Rendu de mesh "murs"
    Par Dranor dans le forum DirectX
    Réponses: 10
    Dernier message: 21/02/2004, 11h23
  2. [DirectDraw] Que faire pour optimiser le rendu ???
    Par mat.M dans le forum DirectX
    Réponses: 8
    Dernier message: 12/12/2003, 18h02
  3. Rendu OpenGL offscreen sous Windows
    Par rincevent_123 dans le forum OpenGL
    Réponses: 3
    Dernier message: 28/11/2003, 09h23
  4. Problème avec le rendu de sphère
    Par Francky033 dans le forum DirectX
    Réponses: 10
    Dernier message: 29/08/2003, 22h00
  5. Un objet rendu apparaît derrière un autre objet
    Par jamal24 dans le forum OpenGL
    Réponses: 2
    Dernier message: 01/05/2003, 20h47

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