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.








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.
Tu installes Struts-Layout en suivant les consignes d'installation indiquées ici et ensuite, tu suis le tutoriel.








As-tu un message d'erreur ? si oui, lequel ?
Sinon, sans un peu de code, je ne vois pas comment on peut t'aider.![]()








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 :
g mis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 // Get an object list. List aList = getAListFromSomwhere();
pour struts-config.xml : g essayé d'appliquer le meme code malgré la Action s'appelle DatagridAction et non pas datagrid
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)
et g essayé avec DatagridAction aussi mais ca marche pas
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>
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 :Que faire???No getter method available for property FormAjoutUser for bean under name org.apache.struts.taglib.html.BEAN
Dans l'Action, il faut coder ceci :
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 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);
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 public class DatagridForm extends ActionForm { private Datagrid datagridUsers ; public Datagrid getDatagridUsers () { return this.datagridUsers ; } public void setDatagridUsers(Datagrid datagridUsers) { this.datagridUsers = datagridUsers ; } }
avec dans l'attribut action le path de l'Action défini dans le struts-config.xml.
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>
Petite précision : Le tag layout:html est important car il permet d'inclure les fichiers JavaScript et le fichier CSS de Struts-Layout.








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![]()
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 ?








voila la trace complete
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
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)
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>
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 ?








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








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?![]()
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 :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <html:link action="DatagridAction?reqCode=display">Datagrid</html:link>








il me sort :
et ceci quand je clique sur le lien!no method to get the property Nom of Forms.FormAjoutUser@16e46f5
(Forms.FormAjoutUser)![]()
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.








Merci infiniment c_nvy
ca marche!
c'etait ca il fallait mettre tout en miniscule dans la jsp!!!![]()
Partager