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 :

Struts et tableau d'objets


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 242
    Par défaut Struts et tableau d'objets
    Bonjour,

    Je reformule de manière plus simple un post précédent (mis en délestage).

    La ligne suivante permet une référence vers l'attribut matricule d'un objet Utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <html-el:text property="utilisateur.matricule" />
    ... et cela fonctionne bien.

    Maintenant, si mon formulaire contient un tableau d'Utilisateur la ligne suivante ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <html-el:text property="tableauUtilisateurs[0].matricule" /> // 0 est l'indice du premier élément du tableau
    Pourquoi ?

    Nota : Je peux aussi utiliser une List ou une Collection.

    Merci d'avance.

  2. #2
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 242
    Par défaut
    Bon l'affichage fonctionne dans la JSP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <html-el:text property="tableauUtilisateur[0].matricule" />
    <html-el:text property="tableauUtilisateur[1].matricule" />
    ... mais quand je poste le formulaire, j'obtiens l'exception suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    javax.servlet.ServletException: BeanUtils.populate
        org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
        org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
        org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    ... et la trace ne me donne aucune référence a mon code.

    Dès que je retire le code indiqué ci-dessus le formulaire peut être posté.

    Comment résoudre mon problème ?

    Personne n'utilise un tableau d'objets dans ses JSP ?

    Au secccccccccoooooooouuuuuuuuuuuuuuurrrrrrrrrrrrrrrrrrrrrrrrsssssssssss.

  3. #3
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Bonjour,

    je soupconne ta collection / tableau de ne pas être initialisé (en taille) à la taille suffisante pour que BeanUtils le remplisse automatiquement.

    Si c'est ca, tu peux t'orienter vers LazyList des Commons Collections (ou l'un de ses équivalents ... j'ai un doute pour les tableaux ceci dit)

  4. #4
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 242
    Par défaut
    Cela ne doit pas être cela car j'initialise le tableau, je l'affiche, je modifie les valeurs affichées et je poste le formulaire : l'exception est soulevée ensuite.

    Mon soucis est certainement que je n'arrive pas à mettre en place le mécanisme qui permet au formulaire de lire les données du tableau.

    Au secours (bis )

  5. #5
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Que donne le code HTML généré par ton html-el:text ?

  6. #6
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 242
    Par défaut
    Bon, il y a du mieux depuis tout à l'heure.

    Voici le ActionForm :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    package pages.engin.objet.formule;
     
     
    import org.apache.struts.action.ActionForm;
     
    import types.Formule;
     
     
    public class DefinirForm extends ActionForm
    {
     
        private static final long serialVersionUID = 1L;
     
        Formule[] tabFormule;
     
        public Object getTabFormule(String key)
        {
     
            return tabFormule[new Integer(key).intValue()];
        }    
     
     
        public Formule[] getTabFormule()
        {
            return tabFormule;
        }
     
        public void setTabFormule(Formule[] tabFormule)
        {
     
            this.tabFormule = tabFormule;
        }
    }
    Voici la configuration du Action :

    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
    
    // APPEL DU JSP
    <action
                path="/formuleAfficherDefinir"
                type="pages.engin.objet.formule.AfficherDefinirAction"
                name="EnginFormuleForm"
                scope="request"
                validate="false">
                 <forward name="formuleDefinir" path="formule-definir"/>
            </action>
            
    // TRAITEMENT DU FORMULAIRE APRES VALIDATION
            <action 
                 path="/formuleDefinir"
                 type="pages.engin.objet.formule.DefinirAction"
                 name="EnginFormuleForm"
                 scope="request"
                 validate="true"
                 input="/formuleAfficherDefinir.do">
              </action>
    Voici la JSP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <nested:form action="/formuleDefinir.do">
    
    <nested:iterate property="tabFormule">
    <nested:text property="nom" />
    </nested:iterate>
    
    
    <input type="image" src="<%=Global.REP_STYLE_IMAGES%>checkin.png" class="bouton positionnerDroite"  title="<bean:message key="Valider"/>" alt="<bean:message key="Valider"/>" />
    <br />
    
    
    </nested:form>
    Et voici le html généré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form name="EnginFormuleForm" method="post" action="/webgravity2/formuleDefinir.do">
     
    <input type="text" name="tabFormule[0].nom" value="formule1">
    <input type="text" name="tabFormule[1].nom" value="formule2">
    <input type="image" src="style/images/checkin.png" class="bouton positionnerDroite"  title="Valider" alt="Valider" />
    <br />
     
    </form>
    J'arrive donc à afficher les noms de formules contenues dans le tabFormule et la validation du formulaire fonctionne quand je mets le scope à session dans le fichier de configuration (au lieu de request) comme cela :

    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
    <action
                path="/formuleAfficherDefinir"
                type="pages.engin.objet.formule.AfficherDefinirAction"
                name="EnginFormuleForm"
                scope="session"
                validate="false">
                 <forward name="formuleDefinir" path="formule-definir"/>
            </action>
            
            <action 
                 path="/formuleDefinir"
                 type="pages.engin.objet.formule.DefinirAction"
                 name="EnginFormuleForm"
                 scope="session"
                 validate="true"
                 input="/formuleAfficherDefinir.do">
              </action>
    Dans le cas du scope égal à request l'exception est toujours soulevée.

    Comment faire fonctionner cela quand le request est égal à request (cela est important qu'il soit à request) ?

    Et toujours au secooooooooouuuuuuuuuuuurrrrrrrrrrrrrrrrrsssssssssssss.

    Merci encore.

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

Discussions similaires

  1. retour tableau d'objets par service web axis jboss
    Par TrollMaster dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 27/11/2005, 21h45
  2. Tableau d'objets
    Par moulefrite dans le forum MFC
    Réponses: 7
    Dernier message: 15/06/2004, 14h14
  3. Sauvegarde / Chargement d'un tableau d'objets
    Par Naruto dans le forum Langage
    Réponses: 3
    Dernier message: 18/05/2004, 14h34
  4. [VB6]Tableau d'objet withevents
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 13/02/2004, 19h44
  5. [VB6] [Syntaxe] Fonction renvoyant un tableau d'objets
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/10/2002, 15h33

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