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 :

[ActionForm] Faire un formulaire en plusieurs etapes


Sujet :

Struts 1 Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 160
    Points : 89
    Points
    89
    Par défaut [ActionForm] Faire un formulaire en plusieurs etapes
    Bonjour,

    Je suis débutant avec Struts et je n'arrive pas à faire ce que je veux:
    J'aimerais faire un formulaire en plusieurs etapes mais je ne sais pas quel est la meilleur solution.
    en gros:
    Premiere page: on choisi un département.
    Deuxieme page on choisi une localité propre au département demandé.

    Comment dois-je proceder, dois-je faire une action par page ou bien une seul action et rediriger ensuite via des mapping.findForward("etapen")? Suis-je au moins sur la bonne voie?
    Avez vous une solution à me proposer?

    Merci d'avance

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Points : 246
    Points
    246
    Par défaut
    pour te guider:

    utilise une action de type dispatchAction.

    utilise un FormBean en session.

    ton idée de forward c'est ça.

    ps:pour t'aider un peu regarde du côté des tutoriels et FAQ struts.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 160
    Points : 89
    Points
    89
    Par défaut
    Merci pour ta réponse.
    Je ne veut pas utiliser de dispatch action et je passe tout en request dans des champs caché.
    Je comptais faire qque chose comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ...
       <action-mappings>
            <action path="/ajoutEtablissement" type="com.projet.control.EtabAddAction" name="etabLocalisationForm" validate="false">
    	 		<forward name="addEtab" path="addEtablissement"/>
    			<forward name="addStruct" path="addStructure"/>
    			<forward name="addDautreTruc" path="addDautreTruc"/>
    			etc...
     		</action>
    ..
    Voila, j'aimerais avoir un avis sur cette façon de faire.
    Merci bcp!

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Points : 653
    Points
    653
    Par défaut
    Ca remonte à un peu loin pour moi, mais je vais essayé de t'expliquer.

    Struts a bien prévu cette possibilité à travers les Formulaires Composés et les tags nested.

    Tout d'abord, tu dois déclarer une classe qui hérite de ActionForm, comme tu le ferais avec un formulaire normal. Sauf que là, tu dois aussi déclarer autant de bean que tu as de pages dans ton formulaire, avec tous les attributs qui vont bien. Rien de bien compliqué, mais il y a deux choses importantes :
    * Les beans doivent obligatoirement implémenter l'interface Serializable
    * Les beans doivent être instanciés dans l'ActionForm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class Page1 implements Serializable  {
    	private String departement;
    }
    public class Page2 implements Serializable {
    	private String localite;
    }
    public class MonForm extends ActionForm {
    	private Page1 page1 = new Page1();
    	private Page2 page2 = new Page2();
    }
    Ensuite, dans les pages jsp, tu dois remplacer tous les tags html par les tag nested correspondants (sauf pour la première page du formulaire où tu gardes le tag html:form) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <html:form action="/forward">
    	Département : <nested:text name="dep"/>
    </html:form>
    Tu devras encore faire quelques recherche pour l'utilisation des tags nested, mais au moins, je t'aurais orienté dans la bonne direction.

    a+

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 160
    Points : 89
    Points
    89
    Par défaut
    Super merci beaucoup
    Je vais m'orienter dans cette direction.
    Que pensez-vous de ce genre de solution:
    http://ics.upjs.sk/~novotnyr/home/pr...20(Barnes).pdf

    Encore merci

Discussions similaires

  1. Faire un formulaire de plusieurs pages
    Par Cédric22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 17/01/2008, 16h16
  2. formulaire avec plusieurs etapes
    Par dolf13 dans le forum Langage
    Réponses: 2
    Dernier message: 30/05/2006, 09h54
  3. Comment faire ??? Sous formulaire ? Autre ?
    Par Zotto dans le forum IHM
    Réponses: 11
    Dernier message: 14/06/2005, 15h53
  4. Formulaire en plusieurs etapes
    Par maimba dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 07/10/2004, 14h48
  5. [VB.NET] [PPC] Comment faire un formulaire sur pls pages?
    Par papy27 dans le forum Windows Mobile
    Réponses: 10
    Dernier message: 03/06/2004, 17h23

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