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 plus complexe


Sujet :

Struts 1 Java

  1. #1
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut ActionForm plus complexe
    Bonjour,

    Débutant dans struts, je regarde pas mal de tuto.

    Je sais que l'on peut faire une actionform de ce type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    public class SuperUserForm extends ActionForm{
     
      private String privilege;
     
      public getPrivilege(){
         return privilege;
      }
     
      public setPrivilege(String privilege){
        this.privilege = privilege
      }
    }
    Mais est-il possible de faire une form de ce type :

    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
    
    public class SuperUserForm extends ActionForm{
    
      private String privilege;
      
      private User user;
    
      public getPrivilege(){
         return privilege;
      }
    
      public setPrivilege(String privilege){
        this.privilege = privilege
      }
    Si oui dois-je respecter des regles? Et lesquels?
    Dois-je faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public setUser(User u){
      this.user = u;
    }
    public getUser(){
      return user;
    }
    sachant de la classe User est comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class User {
     
      private String nom;
     
      public getNom(){
        return nom;
      }
     
      public setNom(String nom){
        this.nom = nom;
      }
     
    }
    Merci de votre aide.
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    C'est tout à fait cela.
    Modératrice Java - Struts, Servlets/JSP, ...

  3. #3
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Et au niveau jsp ca se traduirait par quoi?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <html:form action="/addPersonne" method="POST" focus="nom">
    	<html:text property="privilege" />
                 <html:text property="user.nom" />
    	<html:submit property="submit" />
    </html:form>
    Me fait une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Invalid argument looking up property: "user.nom" of bean: "org.apache.struts.taglib.html.BEAN"
    Si je met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:text property="user" />
    Il me dit que c'est pas le bon type, normal, nom est de type User.
    Erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cannot invoke com.maxf1.struts.forum.PersonneForm.setUser - argument type mismatch
    Une idée, car je ne trouve pas de tuto qui explique cela.
    Si vous en avez un qui explique ce genre de Form je suis preneur.
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  4. #4
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Peux-tu montrer le mapping de ton Action de path /addPersonne dans le struts-config.xml et comment tu initialises la propriété user de ton ActionForm SuperUserForm ?
    Modératrice Java - Struts, Servlets/JSP, ...

  5. #5
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Voici mon struts config:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form-beans>
      <form-bean name="PersonneForm" type="com.maxf1.struts.forum.PersonneForm"/>
    </form-beans>
     
    <action-mappings>
      <action	path="/addPersonne" name="PersonneForm" type="com.maxf1.struts.forum.PersonneAction" scope="session" input="/pages/forum/addpersonne.jsp" validate="true">
        <forward name="success" path="/pages/forum/sommaire.jsp" />
      </action>
    </action-mappings>

    Sinon je n'ai rien initialisé dans mon ActionForm. Faut-il l'initialisé? Si oui comment? Ou?
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  6. #6
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Tout dépend ce que tu veux faire.
    Dois-tu initialiser le formulaire avec des données contenues dans une Base de Données par exemple ?
    Ou veux-tu afficher un formulaire vide ?
    Modératrice Java - Struts, Servlets/JSP, ...

  7. #7
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    En faite j'ai pas trop de but, pour le moment je developpe pour tester struts.
    Donc un formulaire vide me vas très bien vu que je n'ai pas installé de base de donnés.

    Ce que je souhaite faire est d'afficher mon formulaire et de pouvoir le remplir normalement. En utilisant des autres Object que des String dans ma form.
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Points : 495
    Points
    495
    Par défaut
    salut,
    Je crois que c'est un peu compliqué ce que tu essaies de faire, car vu la façon dont fonctionne le protocole HTTP, tous les champs de formulaire HTML sont envoyés sous forme de String. Donc les champs des actionForms devraient également être des String. Bien évidemment, une fois ces champs validés, tu peux par la suite les tranformer en un autre type. Mais peut-être y a-t-il d'autres solutions ...
    SCJP 5 / SCBCD 1.3 Certified

  9. #9
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    J'ai beau chercher sur le net je ne trouve pas d'exemple.
    Ca porte un nom spécial ce que j'essaye de faire ou quoi?


    En faite c'était ma premiere question si c'était faisable, et apparement ca l'ai. Alors je cherche peinement. Mais si j'y arrive je n'aurais pas perdu mon temps
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  10. #10
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Bien sûr que c'est faisable.

    Essaie en déclarant la propriété User dans ton ActionForm comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private User user=new User();
    ou sinon, ajoute la méthode reset :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    private User user ;
     
    public void reset(ActionMapping mapping, HttpServletRequest request)
    {
    user = new User() ;
    }
    Modératrice Java - Struts, Servlets/JSP, ...

  11. #11
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Ok c'est nickel crome.

    Solution initialisé le User dans le Form comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private User user=new User();
    Bonne continuation à tous
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Points : 495
    Points
    495
    Par défaut
    OK pour la solution.
    Sinon j'avais trouvé ce lien, mais je sais pas si ça correspond vraiment :
    http://struts.apache.org/1.2.9/faqs/indexedprops.html
    Voir la section Nested Properties
    SCJP 5 / SCBCD 1.3 Certified

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

Discussions similaires

  1. [uigetfile] Option MultiSelect mais plus complexe
    Par nicolasf85 dans le forum MATLAB
    Réponses: 3
    Dernier message: 03/10/2009, 13h31
  2. Réponses: 2
    Dernier message: 31/08/2008, 17h37
  3. Dessiner des objets plus complexes avec OpenGL
    Par Premium dans le forum OpenGL
    Réponses: 18
    Dernier message: 21/11/2006, 17h55
  4. Réponses: 29
    Dernier message: 13/06/2006, 16h48
  5. [SQL] requetes inbriquées un peu plus complexe.
    Par Devil666 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/05/2005, 11h06

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