Bonjour,
Je suis un débutant dans la conception d'application Web sous Java + Struts 1.3.8.
J'ai un petit problème avec la création d'un écran CRUD pour saisir ou modifier des informations.
Lorsque je saisie des informations, tout va bien, j'arrive a tout récuperer et enregistrer dans ma BDD. par contre quand je cherche à reafficher les informations dans le formulaire, j'ai uniquement l'adresse mémoire qui s'affiche.
Je ne sais pas trop d'ou cela peut provenir, quelqu'un peut-il m'aider ?
Voici les éléments:
le struts config:
Le form:
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 <form-bean name="prelevementBean" type="gmfvie.forms.PrelevementForm"> <form-property name="id" type="java.lang.String" /> <form-property name="commentaires" type="java.lang.String" /> <form-property name="date_saisie_fiche" type="java.lang.String" /> <form-property name="cg" type="java.lang.Integer" /> <form-property name="famille" type="java.lang.Integer" /> <form-property name="defauts" type="java.lang.String[]"/> <form-property name="suggestions" type="java.lang.String[]"/> <form-property name="type" type="java.lang.String" /> </form-bean> <action path="/Prelevement" forward="/pages/prelevement.jsp" /> <action path="/Listprelevement" type="gmfvie.action.ListPrelevementAction"> <forward name="success" path="/pages/prelevements.jsp" /> </action> <action path="/prelevement" name="prelevementBean" scope="request" validate="false" type="gmfvie.action.BuildPrelevementAction" input="/pages/acceuil.jsp" > <forward name="success" path="/pages/prelevement.jsp" /> </action> <action path="/MAJprelevement" name="prelevementBean" scope="request" validate="true" type="gmfvie.action.PrelevementAction" input="/pages/prelevement.jsp" > <forward name="success" path="/Listprelevement.do" /> <forward name="fin" path="/pages/message.jsp" /> </action>
La classe build
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 @SuppressWarnings("serial") public class PrelevementForm extends ActionForm{ private Integer id=null; private String commentaire=null; private String date_saisie_fiche=null; private Integer cg=null; private Integer client=null; private Integer famille=null; private String[] defauts=null; private String[] suggestions=null; private String typeaction=null; public PrelevementForm() { // TODO Auto-generated constructor stub System.out.println("constructeur famille"); } public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { ActionErrors errors = new ActionErrors(); if (request.getParameter("Mode")==null) { // String libelle =getLibelle(); // if (libelle==null||libelle.length()==0) // { // errors.add("libelle", new ActionMessage("errors.required","libelle")); // } } return errors; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getCommentaire() { return commentaire; } public void setCommentaire(String commentaire) { this.commentaire = commentaire; } public String getDate_saisie_fiche() { return date_saisie_fiche; } public void setDate_saisie_fiche(String date_saisie_fiche) { this.date_saisie_fiche = date_saisie_fiche; } public Integer getCg() { return cg; } public void setCg(Integer cg) { this.cg = cg; } public Integer getClient() { return client; } public void setClient(Integer client) { this.client = client; } public Integer getFamille() { return famille; } public void setFamille(Integer famille) { this.famille = famille; } public String[] getDefauts() { return defauts; } public void setDefauts(String[] defauts) { this.defauts = defauts; } public String[] getSuggestions() { return suggestions; } public void setSuggestions(String[] suggestions) { this.suggestions = suggestions; } public String getTypeaction() { return typeaction; } public void setTypeaction(String typeaction) { this.typeaction = typeaction; } }
La page 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
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 public class BuildPrelevementAction extends Action{ private PrelevementDAO myPrelevementDAO; private CGDAO myCGDAO; private ClientDAO myClientDAO; private DefautDAO myDefautDAO; private FamilleDAO myFamilleDAO; private String[] mySuggestionString; private String[] myDefautString; @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // La seule fonction ici est de préremplir le bean avant l'appel de la page. System.out.println("execute BuildPrelevementAction"); myPrelevementDAO = (PrelevementDAO) getServlet() .getServletContext().getAttribute(Constants.PRELEVEMENT_DAO_KEY); myCGDAO = (CGDAO) getServlet() .getServletContext().getAttribute(Constants.CG_DAO_KEY); myClientDAO = (ClientDAO) getServlet() .getServletContext().getAttribute(Constants.CLIENT_DAO_KEY); myDefautDAO = (DefautDAO) getServlet() .getServletContext().getAttribute(Constants.DEFAUT_DAO_KEY); myFamilleDAO = (FamilleDAO) getServlet() .getServletContext().getAttribute(Constants.FAMILLE_DAO_KEY); Prelevement nvxPrelevement = new Prelevement(); // on recupérer une référence sur le form PrelevementForm myForm =(PrelevementForm) form; try { List<CG> cglist=myCGDAO.getCGs(); request.setAttribute("listcg", cglist); List<Client> clientlist=myClientDAO.getClients(); request.setAttribute("listclient", clientlist); List<Defaut> defautbaselist=myDefautDAO.getDefautsBase(); request.setAttribute("listdefautbase", defautbaselist); List<Famille> famillelist=myFamilleDAO.getFamilles(); request.setAttribute("listfamille", famillelist); if(request.getParameter("id")==null){ // pas de paramètre en entrée, pas de mise à jour du bean myForm.setTypeaction("new"); } else { nvxPrelevement=myPrelevementDAO.getPrelevement(Integer.parseInt(request.getParameter("id")),getServlet() .getServletContext()); // prérenseignement des champs myForm.setId(nvxPrelevement.getId()); myForm.setCommentaire(nvxPrelevement.getCommentaire()); myForm.setDate_saisie_fiche(nvxPrelevement.getDate_saisie_fiche()); myForm.setFamille(nvxPrelevement.getFamille().getId()); myForm.setCg(nvxPrelevement.getCg().getId()); myForm.setClient(nvxPrelevement.getClient().getId()); myDefautString=new String[nvxPrelevement.getDefauts().size()]; for(int i=0;i<nvxPrelevement.getDefauts().size();i++){ myDefautString[i]=(nvxPrelevement.getDefauts().get(i).getId().toString()); System.out.println("defauts detail "+i+":"+nvxPrelevement.getDefauts().get(i).getId().toString()); } System.out.println(myDefautString); myForm.setDefauts(myDefautString); mySuggestionString=new String[nvxPrelevement.getSuggestions().size()]; for(int i=0;i<nvxPrelevement.getSuggestions().size();i++){ mySuggestionString[i]=nvxPrelevement.getSuggestions().get(i).getCommentaire(); System.out.println("suggest detail "+i+":"+nvxPrelevement.getSuggestions().get(i).getCommentaire()); } System.out.println(mySuggestionString); myForm.setSuggestions(mySuggestionString); myForm.setTypeaction("modify"); } }catch (Exception exc){ System.out.println(exc.toString()); return mapping.findForward("error"); } return mapping.findForward("success"); } public BuildPrelevementAction() { // TODO Auto-generated constructor stub }
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 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html:html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <html:base /> <title>Insert title here</title> <script language="javascript"> function changeTypeaction(param){ document.forms.prelevementBean.typeaction.value=param; document.forms.prelevementBean.submit(); } </script> </head> <body> <html:form action="MAJprelevement" method="POST"> <hr /> <table> <tr> <td><html:hidden property="id" /></td> </tr> <tr> <td><html:hidden property="typeaction" /></td> </tr> <tr> <td><bean:message key="prelevement.commentaire" /></td> <td><html:text property="commentaire" /></td> </tr> <tr> <td><bean:message key="prelevement.date_saisie_fiche" /></td> <td><html:text property="date_saisie_fiche" /></td> </tr> <tr> <td><bean:message key="prelevement.cg" /></td> <td><html:select property="cg"> <html:option value=""></html:option> <c:forEach var="cgbase" items="${requestScope.listcg}"> <html:option value="${cgbase.id}">${cgbase.initiale} - ${cgbase.nom} ${cgbase.prenom}</html:option> </c:forEach> </html:select></td> </tr> <tr> <td><bean:message key="prelevement.client" /></td> <td><html:select property="client"> <html:option value=""></html:option> <c:forEach var="clientbase" items="${requestScope.listclient}"> <html:option value="${clientbase.id}">${clientbase.matricule} - ${clientbase.nom} ${clientbase.prenom}</html:option> </c:forEach> </html:select></td> </tr> <tr> <td><bean:message key="prelevement.famille" /></td> <td><html:select property="famille"> <html:option value=""></html:option> <c:forEach var="famillebase" items="${requestScope.listfamille}"> <c:if test="${famillebase.actif==true}"> <html:option value="${famillebase.id}">${famillebase.libelle}</html:option> </c:if> </c:forEach> </html:select></td> </tr> <tr> <td><bean:message key="prelevement.defauts" /></td> <c:forEach var="defautbase" items="${requestScope.listdefautbase}"> <td><input type="checkbox" name="defauts" value="${defautbase.id}">${defautbase.libelle}</input></td> </c:forEach> </tr> <tr> <td><bean:message key="prelevement.suggestions" /></td> <td><html:text property="suggestions" /></td> </tr> <c:forEach var="suggest" items="${prelevement.suggestions}"> <tr> <td><bean:message key="prelevement.suggestions" /></td> <td><html:text property="suggestions" value="${suggest}"/></td> </tr> </c:forEach> <tr> <td colspan=2><html:errors /></td> </tr> </table> <hr /> <button type="reset">Effacer</button> <html:submit>Sauvegarder</html:submit> <c:if test="${prelevementBean.typeaction=='modify'}"> <html:button property="toto" onclick="changeTypeaction('delete')">Supprimer</html:button> </c:if> </html:form> <html:link action="/home">Retour à la page d'acceuil</html:link> </body> </html:html>
Partager