Voici un premier billet dans la série sur Les bonnes pratiques avec Struts 2.

Introduction

Struts 2 permet de construire simplement des URLs avec le tag <s:url>. Le problème est que ce tag ajoute dans l’URL tous les paramètres passés dans l’URL de la page courante.

Solutions

Ce genre de comportement est rarement souhaité et ne concerne de quelques cas bien précis. Pour empêcher l’ajout des paramètres courants, il faut positionner l’attribut includeParams avec la valeur none de cette façon :

<s:url value="myurl" includeParams="none">
 <s:param name="myparam" value="myvalue" />
</s:url>

Cette méthode fonctionne bien. Cependant, dans la pratique, il devient vite pénible de devoir positionner cet attribut à chaque fois que l’on souhaite générer une URL. C’est pourquoi, il est préférable de modifier le fichier de configuration de Struts et d’ajouter dans le fichier struts.xml la ligne suivante :

<constant name="struts.url.includeParams" value="none" />

Conclusion

On peut s’étonner du choix de la valeur par défaut de l’attribut includeParams (qui peut prendre les valeurs none, get ou all). Néanmoins, vous voilà  armé pour construire des URLs propres et sans aucun paramètre parasite.