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 :

GWT + Formulaire + Redirection


Sujet :

GWT et Vaadin Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut GWT + Formulaire + Redirection
    Bonjour,

    Je me lance dans une application 100% GWT.
    je dois créer un formulaire de saisie avec de l'ajax...

    J'essaie de passer par un "FormPanel" sur lequel je viens ajouter mes différents champs de mon formulaire (label, textbox...). J'ai mis:

    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
     
    FormPanel formPanel = new FormPanel();
    TextBox textbox1 = new TextBox();
    TextBox textbox2 = new TextBox();
    Button valider = new Button();
     
    formPanel.setAction("Accueil.jsp");
    formPanel.setMethod(formPanel.METHOD_POST);
     
    formPanel.add(textbox1);
    formPanel.add(textbox2);
    formPanel.add(valider);   // mon bouton valider (submit)
    ...
     
    // J'ajoute une action sur mon bouton.
    valider.addClickListener(new ClickListener(){
                            			public void onClick(Widget sender){
    	                                            formPanel.submit();
    					            Window.alert("OK");
    					        }
                                                });
    Lorsque je clique sur le bouton, l'alerte se déclenche et m'affiche le message "OK" mais la page n'est pas redirigée vers "Accueil.jsp"

    Me manque t-il quelque chose?
    Faut-il passer par autre chose que les FormPanel?

    Merci d'avance.

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut GWT+Formulaire+Redirection
    Bonjour,

    tu peux emballer tes widgets du formulaire dans un panel à part, et puis tu dois ajouter un handler au formulaire ( c'est un gestionnaire d'événement à définir comme en swing) !!!
    CF. la doc:http://code.google.com/webtoolkit/do...FormPanel.html

    Effectivement, il y a un problème avec la redirection, heureusement,une solution existe: tu dois ajouter une méthode native à ta classe de base!!!

    //redirect the browser to the given url
    public static native void redirect(String url)/*-{
    $wnd.location = url;
    }-*/;

    D'après http://www.emgarten.com/redirect-to-...url-in-gwt.htm
    l'appel de la méthode dois se trouver dans la redéfinition de la méthode de l'interface handler onSubmit() comme suit !!!

    public void onSubmit(FormSubmitEvent event) {
    // This event is fired just before the form is submitted. We can take
    // this opportunity to perform validation.
    redirect("http://localhost:8888/com.google.gwt.sample.kitchensink.KitchenSink/KitchenSink.html#Frames");
    }

    Voilà, j'espère que cela t'aideras... la totalité du code se trouve sur mon site:
    http://www.bluemarineris.com/ à la rubrique GWT.

  3. #3
    Membre régulier
    Profil pro
    rfv
    Inscrit en
    Novembre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : rfv

    Informations forums :
    Inscription : Novembre 2006
    Messages : 91
    Points : 115
    Points
    115
    Par défaut GWT redirection comme window.location(url) de javascript
    Sur un site j'ai trouvé : GWT redirection comme window.location(url) de javascript

    En voici le contenu partiel :

    Un simple exemple de fonction JSNI pour demander à votre application GWT de rediriger vers une URL différente.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //redirige le browser sur l'url donnée
    public static native void redirect(String url)/*-{
          $wnd.location = url;
    }-*/;
    Exemple d'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    redirect("http://www.placeoweb.com/");

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 23
    Points : 25
    Points
    25
    Par défaut
    Soumettre des formulaires n'est pas trop dans l'esprit de GWT.
    Il est préférable de transmettre les données par le RPC.
    Cordialement,
    Didier

  5. #5
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    Je confirme, mieux vaut passer par une invocation RPC qui permettra en outre de bien gérer toute remontée d'exception (sinon galère pour la gestion du flow web). Utiliser un bean de transport pour cela...

  6. #6
    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
    Effectivement, ce n'est pas trop d'en l'esprit de GWT que de soumettre des formulaires.

    Néanmoins, je nuancerai en ajoutant ceci :

    1/ La soumission de formulaire est quand même requise pour l'upload de fichier. On est bien d'accord que c'est un cas spécial car c'est une limite du navigateur pour une question de sécurité.


    2/ Il faut distinguer selon l'utilisation de GWT :

    Pour des sites classiques : Même s'il n'est à mon sens pas fait pour créer un site complètement (d'où les critiques sur l'accessibilité !!!), certains font des composants qu'ils incluent dans des pages. Pourquoi pas puiqu'après tout, c'est bien ce qui est fait avec les modules javascripts.

    Pour des applications Web : Il est fait pour cela et par conséquent, il ne faut plus penser en termes de pages.

    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.

Discussions similaires

  1. Formulaire + redirection
    Par mozii dans le forum Langages serveur
    Réponses: 1
    Dernier message: 14/08/2012, 09h12
  2. Formulaire, redirections et gestion des erreurs
    Par xnopre dans le forum Langage
    Réponses: 7
    Dernier message: 18/08/2011, 08h58
  3. GWT + Formulaire
    Par jul37 dans le forum GWT et Vaadin
    Réponses: 2
    Dernier message: 05/01/2009, 09h40
  4. formulaire : redirection
    Par pepito31 dans le forum Langage
    Réponses: 4
    Dernier message: 04/09/2007, 11h58
  5. poster un formulaire + redirection
    Par apleker dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 23/06/2005, 21h20

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