2009-07-22 7 views
3

J'ai un ensemble de balises JSP que l'utilisation dynamique des attributs pour permettre des attributs HTML arbitraires à passer pour eux, comme ceci:Passer des attributs dynamiques entre des balises JSP?

<%-- tag named a:div --%> 
<%@ tag dynamic-attributes="attrs" %> 
<div <c:forEach var="attr" items="${attrs}"> ${attr.key}="${attr.value}"</c:foreach>> 
</div> 

Je puis une autre étiquette que je veux être en mesure de passer dynamique-attributs à & il suffit de les passer sur l'étiquette ci-dessus. Quelque chose comme:

<%-- tag using a:div --%> 
<%@ tag dynamic-attributes="attrs" %> 
<a:div class='big' attrs="${attrs}"/> 

Mais attrs = "$ {} attrs" ne fait pas ce que je veux. Des idées?

Répondre

3

Je ne pense pas que ce soit possible, malheureusement. L'objet "attrs" ici est un java.util.Map, et il n'y a aucun moyen d'exploser ce retour.

L'alternative est de permettre à votre balise <a:div> de prendre un attribut Map qui représente ces attributs dynamiques. Peut-être que <a:div> pourrait prendre en charge les deux attributs dynamiques ainsi que d'avoir une carte transmise d'ailleurs, et les traiter de la même façon en utilisant <c:choose> ou similaire?

+0

Hm, dommage. C'est probablement ce que je finirai par faire si je fais cette route à la fin. J'ai eu quelques problèmes avec ceci et n'ai pas pu le faire fonctionner. – oconnor0

+0

J'ai appliqué cette solution avec succès, en prenant en charge à la fois les attributs dynamiques ET un unique attribut "java.util.Map" "dynattrs". Le code devient '

Questions connexes