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 :
public Contact(long id, String firstName, String lastName, String email, Address address, List<PhoneNumber> phone, List<ContactGroup> group) { }
L'adresse :
public Address(long id, String street, String city, String zip, String country) { }
Et PhoneNumber (la structure de ContactGroup est identique) :
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:
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.
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.
Partager