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
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>
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
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();
        }
    }
struts.xml :

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>
edit.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
<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>
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 ?