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 :

Datagrid avec Struts 1.2


Sujet :

Struts 1 Java

  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 15
    Par défaut Datagrid avec Struts 1.2
    bonjour,je veut savoir comment je fait ou quelles sont les fichiers que je doit avoir pour que je puisse utiliser la datagrid dans mon projet
    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
    Tu installes Struts-Layout en suivant les consignes d'installation indiquées ici et ensuite, tu suis le tutoriel.

  3. #3
    Membre averti
    Inscrit en
    Février 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 15
    Par défaut datagrid
    Citation Envoyé par c_nvy Voir le message
    Tu installes Struts-Layout en suivant les consignes d'installation indiquées ici et ensuite, tu suis le tutoriel.
    Merci bien c bon mais j'arrive pas a afficher ma datagrid comment je procède?

  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
    As-tu un message d'erreur ? si oui, lequel ?
    Sinon, sans un peu de code, je ne vois pas comment on peut t'aider.

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 73
    Par défaut
    Bonjour
    g le meme besoin d'afficher la liste de données dans un datagrid jsp donc
    g essayé la solution de struts-layout mais ca na pas marché en fait g une classe hibernate qui extrait les données de la base et qui renvoie une List
    et donc g appliqué tout le code et quand il s'agissait de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Get an object list.
    		List aList = getAListFromSomwhere();
    g mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    		UsersManager mgr = new UsersManager();
                    List aList = mgr.listUsers();// et :
                    lc_datagrid.setDataClass(F2.getClass())
     
    // F2 qui un objet de (type FormAjoutUser le bean des données user)
    pour struts-config.xml : g essayé d'appliquer le meme code malgré la Action s'appelle DatagridAction et non pas datagrid

    Code xml : 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
    <struts-config>
    	...
    	<form-beans>
    		<form-bean name="datagridForm" type="com.foo.datagrid.DataGridForm"/>
    		...
    	</form-beans>
     
    	<action-mappings>
    		<action path="/datagrid"
    				name="datagridForm"
    				type="com.foo.datagrid.DatagridAction"
    				validate="false"
    				parameter="reqCode"
    				scope="session">
    			<forward name="jsp" path="/datagrid.jsp"/>
    		</action>
    		...
    	</action-mappings>
    	...
    </struts-config>
    et g essayé avec DatagridAction aussi mais ca marche pas

    au niveau du JSP : <layout:form action="DatagridAction.do"
    et property="FormAjoutUser"

    qui est le bean qui detient les champs que je vais afficher cad Nom et prenom

    l'erreur :
    No getter method available for property FormAjoutUser for bean under name org.apache.struts.taglib.html.BEAN
    Que faire???

  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
    Dans l'Action, il faut coder ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	DatagridForm datagridForm = (DatagridForm) form;
     
    	UsersManager mgr = new UsersManager();
    	List aList = mgr.listUsers();
     
    	Datagrid datagrid = Datagrid.getInstance();
     
    	datagrid.setDataClass(FormAjoutUser.class);
     
    	datagrid.setData(aList);
     
    	datagridForm.setDatagridUsers(datagrid);
    Dans l'ActionForm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class DatagridForm extends ActionForm
    {
    	private Datagrid datagridUsers ;
     
    	public Datagrid getDatagridUsers ()
    	{
    		return this.datagridUsers ;
    	}
    	public void setDatagridUsers(Datagrid datagridUsers)
    	{
    		this.datagridUsers = datagridUsers ;
    	}
    }
    Et dans 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
    14
    15
    <layout:html>
     
    <layout:form action="datagrid" reqCode="update" styleClass="FORM" >
    	<layout:datagrid property="datagridUsers" styleClass="DATAGRID" model="datagrid">
    		<layout:datagridColumn title="prenom" property="prenom"/>
    		<layout:datagridColumn title="nom" property="nom"/>
    	</layout:datagrid>
    	<layout:row>
    		<layout:button onclick="StrutsLayout.addDatagridLine('datagridUsers')">Add</layout:button>
    		<layout:button onclick="StrutsLayout.setDatagridLineState('datagridUsers', 'removed')">Remove</layout:button>
    		<layout:submit>Update</layout:submit>
    	</layout:row>
    </layout:form>
     
    </layout:html>
    avec dans l'attribut action le path de l'Action défini dans le struts-config.xml.

    Petite précision : Le tag layout:html est important car il permet d'inclure les fichiers JavaScript et le fichier CSS de Struts-Layout.

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 73
    Par défaut
    ca marche pas et le serveur me sort un NullPoinerException
    sachant que g mis dans mon struts-config comme dans mon jsp comme action
    DatagridAction.do le nom de ma classe Action et non pas datagrid
    je ne sais si g raison de faire ca entouca ca marche pas

  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
    Tu mets la valeur que tu veux : datagrid ou DatagridAction. Il faut par contre que celle que tu mets dans l'attribut action du tag layout:form corresponde à celle que tu mets dans l'attribut path de la balise action dans le struts-config.xml.

    Peux-tu montrer la trace complète de l'erreur ?

  9. #9
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 73
    Par défaut
    voila la trace complete
    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
     
    16 mars 2008 16:57:40 org.apache.catalina.core.StandardWrapperValve invoke
    GRAVE: "Servlet.service()" pour la servlet jsp a généré une exception
    java.lang.NullPointerException
            at fr.improve.struts.taglib.layout.collection.CollectionsIterator.<init>(CollectionsIterator.java:35)
            at fr.improve.struts.taglib.layout.collection.BaseCollectionTag.doStartLayoutTag(BaseCollectionTag.java:995)
            at fr.improve.struts.taglib.layout.datagrid.DatagridTag.doStartLayoutTag(DatagridTag.java:57)
            at fr.improve.struts.taglib.layout.BodyLayoutTagSupport.doStartTag(BodyLayoutTagSupport.java:36)
            at org.apache.jsp.Users_jsp._jspx_meth_layout_005fdatagrid_005f0(Users_jsp.java:196)
            at org.apache.jsp.Users_jsp._jspx_meth_layout_005fform_005f0(Users_jsp.java:157)
            at org.apache.jsp.Users_jsp._jspx_meth_layout_005fhtml_005f0(Users_jsp.java:116)
            at org.apache.jsp.Users_jsp._jspService(Users_jsp.java:87)
            at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
            at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
            at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
            at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
            at java.lang.Thread.run(Thread.java:595)
    et ma JSP :


    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
    <layout:html>
     
             <layout:form action="/DatagridAction.do"  reqCode="update" styleClass="FORM">
     
    		<layout:datagrid property="datagridUsers" styleClass="DATAGRID" model="datagrid">
    			<layout:datagridColumn title="Nom" property="Nom"/>
    			<layout:datagridColumn title="Prenom" property="Prenom"/>			
    		</layout:datagrid>
     
    		<layout:column>
    			<layout:submit reqCode="update" >Save</layout:submit>
    		</layout:column>
     
     
     
    	</layout:form>
    </layout:html>

  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
    Le code qui initialise le datagrid est bien exécuté avant l'affichage de la jsp ?

    D'ailleurs, où as-tu mis ce code ? dans une méthode de l'Action DatagridAction je suppose ? Si oui, laquelle et comment y fais-tu appel ?

  11. #11
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 73
    Par défaut
    tu veux parler de la methode display du action?
    il contient le datagrid.getInstance()
    et .setDataClass etc...
    je ne sais ce que tu veux dire par le code qui initialise le datagrid
    entouca g trois elements:

    le JSP avec le code que je t'es donnée, le Action avec la methode display
    et le action form qui contient le getter et le setter du datagrid

    d'un autre coté g la classe hibernate avec la methode List listUsers() qui marche trés bien sous console et le bean des users FormAjoutUser

    qu'est ce qui manque???

  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
    Mais fais-tu bien appel à la méthode display de l'Action avant l'affichage de la jsp ?

  13. #13
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 73
    Par défaut
    ou est ce que je dois appeler la methode display ?

    je croyais que ca s'exécute automatiquement avec struts quand on fait appelle a l'action

    et en plus il n'y a pas de methode execute dans mon action juste display?

  14. #14
    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
    Si tu as suivi le tutoriel du site de Struts-Layout, tu as dû voir que l'Action doit hériter de DispatchAction, ce qui explique qu'il n'y ait pas de méthode execute.
    Et pour exécuter une méthode d'une DispatchAction, il faut appeler l'Action en lui passant le paramètre précisé dans l'attribut parameter dans le mapping de l'Action dans le struts-config.xml, soit dans ton cas reqCode, avec pour valeur le nom de la méthode dans laquelle il y a le code d'initialisation du datagrid, soit dans ton cas display.

    Tu peux donc par exemple mettre un lien dans une jsp qui fera appel à l'Action comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:link action="DatagridAction?reqCode=display">Datagrid</html:link>
    Tu cliques sur le lien et ainsi, la méthode display de DatagridAction sera exécutée et donc le datagrid sera initialisé avec la liste d'objets de type FormAjoutUser et s'affichera dans la jsp datagrid.jsp.

  15. #15
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 73
    Par défaut
    il me sort :
    no method to get the property Nom of Forms.FormAjoutUser@16e46f5
    (Forms.FormAjoutUser)
    et ceci quand je clique sur le lien!

  16. #16
    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 principe, les noms des propriétés doivent commencer par une minuscule.
    Dans FormAjoutUser, tu devrais avoir les propriétés nom et prenom au lieu de Nom et Prenom, et les getters et setters associés getNom, setNom, getPrenom et setPrenom.
    Et il faut modifier la jsp en conséquence.

  17. #17
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 73
    Par défaut
    Merci infiniment c_nvy
    ca marche!
    c'etait ca il fallait mettre tout en miniscule dans la jsp!!!

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

Discussions similaires

  1. boucle simple dans une dataGrid avec quand même une erreur !
    Par fkr dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/11/2005, 16h04
  2. Attribut "readonly" d'un INPUT avec Struts
    Par leywos dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/10/2005, 17h20
  3. Réponses: 2
    Dernier message: 20/08/2005, 20h23
  4. [C#]Datagrid avec checkboxs et pagination
    Par kenzo080 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 19/07/2005, 08h10
  5. [C#] Colonne de trop dans DataGrid avec SQLCE
    Par Roach- dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/04/2005, 21h01

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