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 :

formulaire champs indexés ?


Sujet :

Struts 1 Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 145
    Par défaut formulaire champs indexés ?
    Bonjour,

    Voilà ce que j'aimerais faire :

    J'ai dans mon action une liste de 'Personne' avec 3 attributs (id, name, firstname)

    J'aimerais générer un formulaire avec un champ "text" pour chaque attribut de chaque personne.
    Cela pour faire un update en une seule fois dans ma base de données.

    Malheureusement, je m'y perds un peu.

    Quelqu'un pourrait-il me dire comment je peux l'y prendre ?

    Merci

  2. #2
    Expert confirmé

    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
    Par défaut
    Tout simplement en utilisant les tags nested comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <nested:iterate property="personneList">
      <tr> 
         <td><nested:text property="id"/></td>
         <td><nested:text property="name"/></td>
         <td><nested:text property="firstname"/></td>
      </tr>
    </nested:iterate>

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 145
    Par défaut
    Ok ça à l'air de fonctionner mais comment dois-je faire au niveau de mon ActionForm ?

    J'ai ceci pour le moment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public PersListForm extends ActionForm {
     
    private List personnes;
     
    public List getPersonnes() {
      return personnes;
    }
     
    public void setPersonnes(List newList) {
      this.personnes = newList;
    }
    }
    Et je reçois une erreur NullPointerException venant de org.apache.commons.beanutils.PropertyUtilsBean.getIndexedProperty

    Merci

  4. #4
    Expert confirmé

    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
    Par défaut
    Normalement, dans l'ActionForm, il faut juste coder getter et setter sur la collection comme tu l'as fait.

    La List personnes est bien une liste de bean Personne ayant pour propriété id, name et firstname ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 145
    Par défaut
    Oui tout à fait et tout s'affiche bien.
    Le problème arrive quand je veux valider le formulaire.

  6. #6
    Expert confirmé

    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
    Par défaut
    Citation Envoyé par nighma
    Et je reçois une erreur NullPointerException venant de org.apache.commons.beanutils.PropertyUtilsBean.getIndexedProperty
    Peux-tu donner la cause mère (root cause) de l'erreur stp ?

  7. #7
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 145
    Par défaut
    Voilà
    [2/11/06 15:43:27:006 CET] 00000031 ServletWrappe E SRVE0014E: Cause root de l'exception non interceptée générée par la méthode service() action : java.lang.NullPointerException
    at org.apache.commons.beanutils.PropertyUtilsBean.getIndexedProperty(PropertyUtilsBean.java:427)
    at org.apache.commons.beanutils.PropertyUtilsBean.getIndexedProperty(PropertyUtilsBean.java:340)
    at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:684)
    at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715)
    at org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:884)
    at org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
    at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
    at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:493)
    at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:805)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1282)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:673)
    at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:80)
    at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1802)
    at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:84)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:472)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:411)
    at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:101)
    at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)
    at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)
    at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)
    at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1455)

  8. #8
    Expert confirmé

    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
    Par défaut
    Comment initialises-tu ton formulaire ?
    Dans une Action d'initialisation ou dans la méthode reset ?
    Qu'as-tu codé dans la méthode reset ?

  9. #9
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 145
    Par défaut
    Je n'en ai pas. Comment dois-je la faire ?

    Je te lirai probablement demain car aujourd'hui il faut que je rentre.

    Merci pour ton aide

  10. #10
    Expert confirmé

    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
    Par défaut
    Tu n'es pas obligé de coder une méthode reset.
    Si tu n'as pas codé de méthode reset, cela veut dire que tu initialises le formulaire avec la collection dans une Action non ?
    Dans ce cas, il faut mettre le form-bean en scope session.

  11. #11
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 145
    Par défaut
    Merci. Cela fonctionne depuis que j'ai mis le scope en session mais j'ai du mal à comprendre pourquoi.

    Puis-je pousser jusqu'à te demander si tu as une explication sur ceci ?


    Merci encore

  12. #12
    Expert confirmé

    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
    Par défaut
    En fait, tu as une première requête qui commence à l'appel de l'Action qui initialise le formulaire.
    Quand la jsp s'affiche, la réponse a été construite et envoyée au navigateur, ce qui signifie que la requête est terminée.
    Si tu es en scope request, le form-bean rempli n'est plus accessible au submit du formulaire, parce que c'est une nouvelle requête qui est envoyée.
    Voilà pourquoi il faut utiliser le scope session dans ce cas-là.

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

Discussions similaires

  1. formulaire: champ texte + liste deroulante
    Par mat21 dans le forum Langage
    Réponses: 3
    Dernier message: 17/01/2006, 10h01
  2. sous-formulaire : champs provenant plusieurs tables
    Par patbeautifulday1 dans le forum IHM
    Réponses: 13
    Dernier message: 21/12/2005, 11h17
  3. Champs indexés
    Par GreenJay dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/11/2005, 15h59
  4. Modifier champ indexés en SQL
    Par jlvalentin dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 27/10/2005, 12h26
  5. Formulaire, champs de type file, value
    Par Space Cowboy dans le forum Langage
    Réponses: 1
    Dernier message: 12/09/2005, 08h29

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