Bonjour, je voudrais réaliser un formulaire pré-rempli avec les données extraites d'une base via Hibernate. Je liste d'abord les données extraites de la base, ça ça fonctionne :
liste.jsp
action correspondante : (list.do)
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 <s:iterator value="courriers"> <tr> <s:form action="edit.do" method="post"> <td class='std'><s:property value="id" /> <td class='std' width="30"><input type="image" src="icones/mail_generic2.png" /></td> <td class='std'><s:property value="datetime" /></td> <td class='std'><s:property value="expediteur" /></td> <td class='std'><s:property value="objet" /></td> <td class='std'><s:property value="destinataire" /></td> <td class='std'><s:property value="transmetteur" /></td> <td class='std'><a href="del.do?id=<s:property value="id" />"><img src="icones/supprimer_16.png" /></a></td> </s:form> </tr> </s:iterator>
struts.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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 public String getList() { HttpServletRequest request = ServletActionContext.getRequest(); Transaction tx = null; Session session = HibernateUtil.getSession(); try { String hql = "from Courrier"; if(request.getParameter("order") != null && request.getParameter("type") != null) { hql += " order by " + request.getParameter("type") + " " + request.getParameter("order"); } this.setCourriers(session.createQuery(hql).list()); //httpSession.setAttribute("colist", colist); return SUCCESS; } catch(HibernateException e) { addActionError(e.getMessage()); return ERROR; } finally { session.close(); } }
edit.jsp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <action name="list" class="com.menehould.courrier.action.CourrierAction" method="getList"> <result>liste.jsp</result> <result name="error">error.jsp</result> </action> <action name="edit"> <result type="dispatcher">edit.jsp</result> </action>
Le problème se situe là, les propriétés ne sont pas transmises de liste.jsp à edit.jsp, ce qui je pense doit venir d'une erreur de compréhension de ma part. Faut il que je passe par une classe d'action pour faire une nouvelle requête dans la base à partir d'un id passé en paramètre, re-instancier un bean avec le résultat de la requête et le transmettre à edit.jsp ? Je trouve cette méthode un peu lourde, il doit y avoir plus simple ?
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 <tr> <td class='std'> <input type=text name='arc_date' id='arc_date' size=9 value="<s:property value='datetime' />"> <a href="javascript:NewCal('arc_date','yyyymmdd');"><img src="icones/agenda.png" border=0 alt='Calendrier' align=absmiddle ></a> </td> <td class='std' width=100> <input type=text name='arc_expe' size=20 value="<s:property value='expediteur' />"> </td> <td class='std' width=100> <input type=text name='arc_objet' size=30 value="<s:property value='objet' />"> </td> <td class='std' align=center> <input type=text name='arc_dest' size=8 value="<s:property value='destinataire' />"> </td> <td class='std'> <input type=text name="arc_trans" size=8 width=20 value="<s:property value='transmetteur' />"> </td> <td class='std'> <INPUT type=image src="icones/filesave.png"> <a href="CourrierController"><img src="icones/undo.png" /></a> </td> <input type="hidden" name="id" value="<s:property value='id' />"> </tr>
Partager