Bonjour,
je travaille avec struts-layout et j'ai un problème avec l'affichage d'une collection d'objets avec des cases à cocher pour une validation de ceux qui sont cochés, j'ai fait le nécessaire mais ça ne marche pas.
J'ai toujours le message :
Je vous donnes mes composants:[19/11/08 13:59:42:810 GMT] 195dc826 WebGroup E SRVE0026E: [Erreur de servlet]-[]: java.lang.NullPointerException
at org.apache.commons.beanutils.PropertyUtils.getIndexedProperty(PropertyUtils.java:515)......
-ma page d'affichage jsp :
mes 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
35
36
37
38
39
40
41
42 <layout:form action="validation_perLot.do" styleClass="FORM" key="Validation des Objets Communs" width="100%"> <layout:collection name="objetCommunLotBean" property="objComLot2V" selectName="selectedRecordRef" selectProperty="refObjetCommun" selectType="checkbox" styleClass="FORM" align="center" width="100%" > <layout:collectionItem title="Ref° Objet" property="refObjetCommun" /> <layout:collectionItem title="Libelle Objet" property="libelleObjet" /> <layout:collectionItem title="Type Objet" property="commentaire" /> <layout:collectionItem title="Version" property="version"/> <layout:collectionItem title="Statut" property="statut"/> <layout:collectionItem title="Domaine" property="domaine"/> <layout:collectionItem title="Propriétaire" property="person.matricule"/> <layout:collectionItem title="Langage source" property="langageSource"/> <layout:collectionItem title="Description" property="description" /> <layout:collectionItem title="Emplacement" property="emplacement"/> <layout:collectionItem title="Nom d'appel" property="callName"/> <layout:collectionItem title="Input" property="input"/> <layout:collectionItem title="Output" property="output"/> <layout:collectionItem title="Exemple d'appel" property="callExample"/> <layout:collectionItem title="date de Création" property="dateCreation"/> <layout:collectionItem title="date saisie" property="dateSaisie"/> <layout:collectionItem title="date de Maj" property="dateMaj"/> </layout:collection> <div align="center"> <TABLE border="0" align="center"> <TBODY> <TR> <TD><html:submit style="width: 150;" > <bean:message key="button.submit" /> </html:submit> </TD> </TR> </TBODY> </TABLE> </div> </layout:form>
1) pour récupérer les valeurs de l'attribut "selectProperty" du tag layout collection correspondant aux cases cochées:
2) pour récupérer la listes des objets à afficher :
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 public class Check2validBean extends ActionForm { private String[] selectedRecordRef ; public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest httpServletRequest){ ActionErrors erreurs = new ActionErrors(); return erreurs ; } public void reset(ActionMapping mapping, HttpServletRequest request){ } /** * @return */ public String[] getSelectedRecordRef() { return selectedRecordRef; } /** * @param strings */ public void setSelectedRecordRef(String[] strings) { selectedRecordRef = strings; } }
getter and setter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public class ObjetCommunLotBean extends ActionForm { private List objComLot2V ;
Mon Action:
Merci de m'aider à résoudre mon problème de me donner un coup de main
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88 /* * Created on 7 oct. 08 * * To change the template for this generated file go to * Window>Preferences>Java>Code Generation>Code and Comments */ package ma.rami.controller; import java.io.IOException; import java.util.Collection; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import ma.rami.util.HibernateUtil; import ma.rami.view.Check2validBean; import ma.rami.view.ObjetCommunLotBean; import org.apache.struts.action.Action; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; import org.hibernate.Session; /** * @author u113917 * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */ public class CheckLotOCAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String target="failed" ; ActionErrors erreurs = new ActionErrors(); String lgSource ="" ; Session session= null ; session = HibernateUtil.getCurrentSession(); try{ LinkedList bridge_lang=new LinkedList(); List results = session.createQuery("from ObjetCommun obCom where upper(obCom.statut)!='VALIDE'").list(); if(results.size()==0){ erreurs.add("obcv", new ActionError("objet.valide.all")); saveErrors(request, erreurs); }else{ ObjetCommunLotBean ocLot = (ObjetCommunLotBean)form ; ocLot.setObjComLot2V(results) ; ocLot.setSelectedRecordRef(new String[results.size()]); target="success"; } }catch(Exception e){ e.printStackTrace(); erreurs.add("EmptyOC", new ActionError("objet.init.empty")); saveErrors(request, erreurs); }finally{ HibernateUtil.closeSession(); } return mapping.findForward(target); } }
Partager