Bonjour.

J'aurais besoin d'un peu d'aide pour du theming struts2.

En effet, les themes par défault (xhtml, xhtml_css, simple, ajax) sont tous plus nuls les uns que les autres, absolument pas sémantiques, super pas souple à designer (à cause d'une structure html complètement bidon). En plus, ils injectent du javascript / css un peu partout, ce qui est particulièrement déplaisant et contre toutes les bonnes pratiques.

On m'a confié la mission de proposer un formulaire sémantique, souple et facilement faisable avec struts. C'est sur le dernier point que ça coince, puisqu'en gros, pour que ce soit "facile", il faut écrire un nouveau thème. Comme d'habitude, j'ai tenté d'aller chercher de la doc, et comme d'habitude avec java web@apache.com, la doc est illisible, avec un pauvre exemple pas du tout pertinent et la moitié des paramètres manquants (qu'on trouve en lisant des fichiers de tld écrits dans un énième langage abscons).

J'ai donc ajouté mon répertoire de thème dans /src/main/resources/template/semantic, créé le fichier theme.properties pour lui donner simple comme parent, puis j'ai commencé à pleurer du sang.

En effet, lorsque j'écris le code suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<s:form action="#" method="post" theme="simple"></s:form>
j'obtiens:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
<form action="#" name="#" id="#" method="post">
</form>
Pour tenter de mieux comprendre comment marche cet espèce de gros obfuscteur de code, j'ai donc extrait les fichiers du theme "simple" du jar de struts pour avoir une liste que j'espère exhaustive des tous les fichiers utilisés par cet outil et j'ai ouvert les fichiers form.ftl et form-commons.ftl.

A aucun endroit je n'arrive à voir la moindre ligne qui assignerait l'action à name et id si ceux-ci sont vides. A aucun endroit je n'arrive à voir la moindre ligne qui assigne l'id au name si name n'est pas renseigné. Il semblerait que ce soit fait AVANT l'entrée dans le fichier forms-common.ftl puisque lorsque j'écris, à la première ligne du fichier ${parameters.id}, id contient déjà la valeur de action.

Evidemment, aucune trace de cela dans la doc (forcément, c'est la doc apache =))))) ).

J'en appelle donc au service d'un aimable expert de cette formidable technologie qu'est struts2 afin de me renseigner, s'il lui plait, sur la possibilité de ne PAS avoir d'id / name (sans que le développeur ait à penser qu'il faut préciser un id et name vide) sur un form par défaut car cela n'a aucune forme d'intérêt.

Et je suis pas contre un bon tutorial (fr ou en) sur le theming struts, c'est à dire pas un de ceux qu'on peut trouver sur les 3 premières pages de recherche google.

Merci d'avance.
Cordialement.