Bonjour,

Je commence tout juste à travailler sur Struts 1.3 et j'ai une petite application à faire permettant la gestion de contact. Je me suis retrouvé bloqué dans l'affichage d'objets imbriqués : on me demande de créer des objets Contact et de les afficher sur une page JSP.

Voilà la structure de Contact :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
public Contact(long id, String firstName, String lastName, String email, Address address, List<PhoneNumber> phone, List<ContactGroup> group) { }
L'adresse :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
public Address(long id, String street, String city, String zip, String country) { }
Et PhoneNumber (la structure de ContactGroup est identique) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
public PhoneNumber(long id, String phoneKind, String phoneNumber){ }
Dans ma classe Action je récupère ma liste de contacts (via le DAO) et je l'envoi à ma page JSP avec un setAttribute:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public ActionForward execute(final ActionMapping pMapping, ActionForm pForm, final HttpServletRequest pRequest,
			final HttpServletResponse pResponse) {
 
		final DAOContact daoContact = new DAOContact();
               // On créer nos contacts et on les récupèrent 
		final DisplayAllContact display = daoContact.displayAllContacts();
 
 
		if(display.getError() == null) {
                        // On envoie la liste de nos contacts vers la page jsp
			pRequest.setAttribute("LISTECONTACTS", display.getContacts());
			return pMapping.findForward("success");
		}
	}
Donc une fois sur ma page JSP je n'ai pas de problème pour afficher le nom, l'id... d'un contact mais je ne vois pas comment afficher son adresse ou la liste de ses groupes.

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
<table border="1">
		<thead>
			<tr>
				<th><bean:message key="add.contact.form.id" /></th>
				<th><bean:message key="add.contact.form.lastname" /></th>
				<th><bean:message key="add.contact.form.firstname" /></th>
				<th><bean:message key="add.contact.form.email" /></th>
			</tr>
		</thead>
		<tbody>
			<logic:iterate name="CONTACT" id="contact">
				<tr>
					<td><bean:write name="contact" property="id" /></td>
					<td><bean:write name="contact" property="firstName" /></td>
					<td><bean:write name="contact" property="lastName" /></td>
					<td><bean:write name="contact" property="email" /></td>
				</tr>
			</logic:iterate>
		</tbody>
	</table>
J'ai regardé du côté du tag nested mais je ne comprends pas trop comment l'utiliser et s'il répond bien à mon problème. J'ai vu aussi beaucoup de solutions en struts 2.0 mais je dois me cantonner exclusivement à struts 1.3. J'ai vu aussi qu'utiliser des for à l'intérieur de tag java pouvait aussi être une solution (mais je ne sais pas si c'est une bonne pratique ou non).

Voilà, si quelqu'un pouvait prendre un peu de temps pour m'aider je lui en serais très reconnaissant !

Merci.