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-Layout] datagrid + save


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 153
    Par défaut [Struts-Layout] datagrid + save
    Bonjour,

    J'ai réalisé un datagrid d'un pour une autre table de ma base, avec un bean tres simple ( juste des String ), toutes les fonctionnalités du datagrid fonctionne , add save remove.

    Maintenant je souhaite réaliser un datagrid d'ObligationInitiale contenant une Periodicité un peu plus compliqué, le datagrid s'affiche, mais je bloque sur le save.

    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
    <layout:datagrid property="datagrid" model="datagrid" styleClass="DATAGRID" >
     
    <layout:datagridColumn title="Titre" property="titre"/>
     
    <layout:datagridSelect title="Périodicite" property="periodicite.id">
    	<layout:options collection="periodicites" property="id" labelProperty="libelle"/>
    </layout:datagridSelect>
     
    </layout:datagrid>
     
    <layout:row>
    	<layout:button onclick="StrutsLayout.addDatagridLine('datagrid')">Ajouter</layout:button>
    	<layout:button onclick="StrutsLayout.setDatagridLineState('datagrid', 'removed')">Supprimer</layout:button>
    	<layout:submit reqCode="update" >Sauvegarder</layout:submit>
    </layout:row>
    le bean ObligationInitiale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class ObligationInitiale implements Serializable
    {
     
    	private String titre;
    	private Periodicite periodicite;
    qui a une periodicité :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public class Periodicite implements Serializable
    {
    	private String id;
    	private String libelle;
    dans mon form, je prepare le terrain :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public ConsulterObligationInitialeForm()
    	{	
    		periodicites = new ArrayList<String>();
    		ArrayList<ObligationInitiale> liste = new ArrayList<ObligationInitiale>() ;
     
    		datagrid = Datagrid.getInstance();
    		datagrid.setDataClass(ObligationInitiale.class);
    		datagrid.setData(liste);
    	}
    j'initialise mon datagrid :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    consulterObligationInitialeForm.setDatagrid(datagrid);
     
    ArrayList periodicites = PeriodiciteFactory.getAll();
    request.getSession(false).setAttribute("periodicites", periodicites);
    mon config :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form-bean name="consulterobligationinitialeForm" type="form.ConsulterObligationInitialeForm">
    	<form-property name="reqCode" type="java.lang.String"/>
    	<form-property name="id" type="java.lang.String"/>
    </form-bean>
    si j'enleve le datagridSelect , je rentre dans ma methode update mais avec :

    dans ma console d'eclipse :
    11:16:00,734 ERROR [[action]] Servlet.service() for servlet action threw exception
    java.lang.IllegalArgumentException: No bean specified
    at org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDescriptor(PropertyUtilsBean.java:751)
    sur le navigateur :

    javax.servlet.ServletException: BeanUtils.populate
    merci de votre aide

  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
    As-tu initialisé periodicite dans le constructeur de la classe ObligationInitiale comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.periodicite=new Periodicite() ;

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 153
    Par défaut
    merci de ton aide

    oui j'ai rajouté ta ligne

    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 ObligationInitiale()
    	{
    		this.periodicite=new Periodicite() ;
    	}
     
    public ObligationInitiale(	String id,
    			String titre,
    			Periodicite periodicite)
    	{
    		this.periodicite=new Periodicite() ;
    		this.id = id;
    		this.titre = titre;
    		this.periodicite = periodicite;
    	}
    toujours pareil

  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
    Le new Periodicite() ne sert à rien dans le deuxième constructeur étant donné que tu initialises periodicite avec l'objet Periodicite passé en paramètre du constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	this.periodicite = periodicite;
    Je suppose que tu fais appel à ce constructeur pour constituer l'ArrayList periodicites dans la méthode getAll() de PeriodiciteFactory ?

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 153
    Par défaut
    exactement

  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
    Cela fonctionne-t'il mieux si tu ajoutes une ligne à vide dans la liste dans le constructeur de ConsulterObligationInitialeForm comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public ConsulterObligationInitialeForm()
    {	
    	periodicites = new ArrayList<String>();
     
    	ArrayList<ObligationInitiale> liste = new ArrayList<ObligationInitiale>() ;
    	liste.add(new ObligationInitiale()) ;
     
    	datagrid = Datagrid.getInstance();
    	datagrid.setDataClass(ObligationInitiale.class);
    	datagrid.setData(liste);
    }

Discussions similaires

  1. [Struts-Layout] Datagrid et dispatch action
    Par sousoujda2 dans le forum Struts 1
    Réponses: 5
    Dernier message: 15/04/2008, 12h13
  2. Réponses: 2
    Dernier message: 31/01/2008, 14h45
  3. [Struts-Layout] Datagrid : Erreur Unchecked Conversion
    Par Le Pharaon dans le forum Struts 1
    Réponses: 13
    Dernier message: 21/09/2007, 09h02
  4. cacher des colonnes du struts layout datagrid
    Par imsory dans le forum Struts 1
    Réponses: 1
    Dernier message: 02/04/2007, 11h28
  5. Réponses: 2
    Dernier message: 25/02/2007, 23h56

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