Bonjour à tous,
J'aimerais me créer un composant "Adresse" que je réutilise souvent dans mes pages. Mon problème, c'est que j'ai créé une librairie de tag personnalisé basé sur les tags de Spring.
Mes tag attendent une variable "meta" qui contient des informations nécessaires à la génération du tag html. Tout ceci est géré donc par ma librairie personnalisé.
voici comment ça se présente actuellement :
Comme on peut le constater, il n'y un juste un mot clef qui diffère : "projet" et "bien". Ce que j'avais penser c'est donc de créer un fichier .tag regroupant mes champs et auquel je passe en attribut le mot clef
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <mesTags:input path="projet.adresse.batiment" meta="${meta.projet.adresse.batiment}/> <mesTags:input path="projet.adresse.code_postal" meta="${meta.projet.adresse.code_postal}//> ... ... <mesTags:input path="bien.adresse.batiment" meta="${meta.bien.adresse.batiment}/> <mesTags:input path="bien.adresse.code_postal" meta="${meta.bien.adresse.code_postal}//>
que j'appel ensuite dans ma jsp comme ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part <%@ attribute name="motClef" required="true" %>
ensuite dans le code du fichier .tag, je récupère ce mot clef, pour le path sans problème, je créer la chaine de caractère comme ceci: ${motClef}.adresse.chez_etage et ça suffit, spring s'en sort
Code : Sélectionner tout - Visualiser dans une fenêtre à part <prefix:Adresse motClef="bien"/>
Mais la difficulté réside sur ma variable meta. Impossible de faire un: ${meta.${motClef}.adresse.chez_etage}... ça crash. j'ai essayer en générant par exemple la chaine de caractère ${meta.bien.adresse.code_postal} ou ${motClef} = bien, mais là il le considère comme un String et non pas comme un objet... normal.
Il faudrait donc que je puisse faire appel au getter getBien ou getProjet du meta selon ce motClef, est ce possible. ça revient à générer le nom d'une variable dynamiquement.
Je suis vraiment à cours d'idée
Merci à tous de votre aide
Arnaud
Partager