Voici le second billet dans la série sur Les bonnes pratiques avec Struts 2.

Introduction

Struts 2 permet de gérer facilement des doubles listes déroulantes (tag <select> en HTML) avec le tag <s:doubleselect>. Le problème est que les listes déroulantes générées avec ce tag s’affichent toujours l’une au dessous de l’autre (ie. verticalement). Or, souvent il est souhaitable que ces listes soient affichées l’une à côté de l’autre (ie. horizontalement).

Solutions

En lisant le code du template par défaut de Struts 2, on se rend compte que le retour à la ligne entre les deux listes est forcé avec le tag <br />. Donc, il n’existe qu’une seule solution : réécrire le template pour le tag <s:doubleselect>. Enfin, il faut juste supprimer le tag <br /> présent dans le fichier doubleselect.ftl (ligne 32 dans la version 2.0.11 de Struts 2). 😉

Conclusion

Encore une fois, on peut s’étonner de l’ajout par Struts 2 d’un <br /> entre les deux listes déroulantes. De plus, j’ai essayé d’ajouter un nouvel attribut au tag<s:doubleselect> pour paramétrer l’alignement (horizontal et vertical), mais je n’ai pas réussi. 🙁