Bonjour,
j'essaie de récupérer la liste d'objet retourné par ma multibox:
Mais ca me sort l exeption suivante :
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 description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête. exception javax.servlet.ServletException: BeanUtils.populate org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1254) org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) javax.servlet.http.HttpServlet.service(HttpServlet.java:710) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) cause mère java.lang.IllegalArgumentException: argument type mismatch sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) org.apache.commons.beanutils.PropertyUtils.setSimpleProperty(PropertyUtils.java:1789) org.apache.commons.beanutils.PropertyUtils.setNestedProperty(PropertyUtils.java:1684) org.apache.commons.beanutils.PropertyUtils.setProperty(PropertyUtils.java:1713) org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:1019) org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808) org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1252) org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) javax.servlet.http.HttpServlet.service(HttpServlet.java:710) javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
Ma jsp est :
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 <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> <%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> <%@ page import="appHIB.Roles" %> <html:html> <head> <title>Page de saisie d'un user</title> </head> <body bgcolor="#ffffff"> <!-- Ici c'est la page ou sera saisis le nom de notre user, ensuite le formulaire sera donnée a userSaisirBean(réalisé par le controleur) qui controlera celui-ci avant de le donner a l'action pour le traitement métier et l'acces aux bases de données. --> <html:form action="/create" name="frmAjouterUser" type="app.UserAjouterBean"> <CENTER> <h2>Saisir les informations de votre User</h2> <table > <br/> <TR><TD><h5>Login :</h5></TD><TD><html:text property="logUser" size="50"/><html:errors property="logUser"/></TD></TR> <TR><TD><h5>Nom :</h5></TD><TD><html:text property="nameUser" size="50"/><html:errors property="nameUser"/></TD></TR> <TR><TD><h5>Email :</h5></TD><TD><html:text property="emailUser" size="50"/><html:errors property="emailUser"/></TD></TR> <TR><TD><h5>Liste Roles:</h5></TD><TD> <logic:iterate name="UserAjouterBean" property="listderoles" id="id" > <html:multibox property="listroles" > <bean:write name="id" /> </html:multibox> <bean:write name="id" property="name"/><br/> </logic:iterate></TD></TR> </table> <html:submit value="Valider"/> <html:reset value="Reset"/> </CENTER> </html:form> </body> </html:html>
Ma bean est :
Ma class action :
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134 package app; import java.util.Collection; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionMapping; import appHIB.Roles; import javax.servlet.http.*; /** ici on definit le bean qui va recevoir les donnees saisies * dans le formulaire frmSaisiruser de la page saisieuser.jsp */ @SuppressWarnings("serial") public class UserAjouterBean extends ActionForm { /** * Parametre du bean */ private String logUser = null; public String getLogUser() { return logUser; } public void setLogUser(String logUser) { this.logUser = logUser; } /*** name ******************/ private String nameUser = null; public String getNameUser() { return nameUser; } public void setNameUser(String nameUser) { this.nameUser = nameUser; } /*** email ******************/ private String EmailUser = null; public String getEmailUser() { return EmailUser; } public void setEmailUser(String EmailUser) { this.EmailUser = EmailUser; } /*** Roles ******************/ private String RolesUser = null; public String getRolesUser() { return RolesUser; } public void setRolesUser(String RolesUser) { this.RolesUser = RolesUser; } /******************* List Roles **********************************/ private Collection<Roles> listroles=null; public Collection<Roles> getListroles() { return listroles; } public void setListroles(Collection<Roles> list) { this.listroles = list; } private Collection<Roles> listderoles=null; public Collection<Roles> getListderoles() { return listderoles; } public void setListderoles(Collection<Roles> list) { this.listderoles = list; } private Long id=null; public Long getId() { // TODO Auto-generated method stub return id; } public void setId(Long long1) { // TODO Auto-generated method stub this.id=long1; } /** * Partie de controle des donnees saisies * @param actionMapping * @param httpServletRequest * @return */ public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest httpServletRequest) { /** * Creation ici de la liste d'erreur */ ActionErrors erreurs = new ActionErrors(); /**Les choses serieuse commencent, je vais controler mon formuliare * Ici en l'occurrence mon nomuser ne doit pas être vide * Le controleur appelle cette methode apres aoir chargé les données(ici une seule) * mais peu importe le nombre */System.out.println("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); if (logUser.length() == 0) { /** * Si le champ nom de l'user est vide je retourne une erreur * avec erreur.add("clé,ActionError) */ erreurs.add("logUser", new ActionError("Objet.nom.vide")); } /** * ici on retourne la liste des erreurs, si celle-ci est vide le controleur pourra executer * la methode execute de notre Action (userSaisirAction) */ return erreurs; } }
est :
Merci d'avance
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 package app; /*** * Cette classe va faire appel soit aux classes métier, aux classes de données. * Elle retournera ensuite les données a la page */ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import service.Service; import appHIB.User; public class UserAjouterAction extends Action { @SuppressWarnings("unchecked") public ActionForward perform(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { System.out.println("Action2"); String cible=new String("succes"); UserAjouterBean Formulaire = (UserAjouterBean) actionForm; //ici mon formulaire est correct, je vais pouvoir interroger les données User user; Service service= new Service(); user =(User) service.ajouterActionU(Formulaire); if(user==null) { cible="pastrouve"; } else{ httpServletRequest.setAttribute("beanData",user); } return actionMapping.findForward(cible); } }
Partager