2009-02-10 9 views
1

Existe-t-il un moyen d'utiliser quelque chose comme EL différé dans JSP 2.0/J2EE 1.4? L'idée est de passer un test à un fichier de tag et de lui faire afficher un élément dans une liste (ou non) en fonction de la valeur de l'expression. En fait, je voudrais faire quelque chose comme ceci:Différé EL dans JSP 2.0

JSP:

<x:myTag items="${myCollection}" test="${item.visible}"/> 

myTag.tag

<c:forEach var="item" items="${collection}"> 
    <c:if test="${test}"> 
     ${item} 
    </c:if> 
</c:forEach> 

Mise à niveau de notre conteneur JSP n'est pas une option. Des idées?

Mise à jour:

J'ai essayé de faire cela avec des fragments JSP, mais le EL dans le fragment a été évalué une fois dans la JSP, plutôt qu'une fois par itération dans la balise.

Répondre

1

Vous devriez être en mesure de le faire avec jsp fragments. Je crois que ce ne sera pas la solution extrêmement élégante que vous apprécieriez, mais cela permet de différer l'exécution de l'expression jusqu'à l'intérieur de l'étiquette.

Editer: Vous pouvez consulter le variable avec le paramètre "nom donné".

(j'admettra volontiers que je l'ai fait quelque chose comme ce que vous essayez de faire il y a environ 2 ans. Je ne l'ai pas touché depuis. Je me souviens que je pensais qu'il était tout à fait Arcane)

+0

J'ai essayé des fragments JSP . Voir la mise à jour sur la question. –

+0

Ah, je l'ai eu pour travailler. Mon fichier de balise était manquant <% @ variable name-given = "item"%>. C'est un arcane, mais ça marche. –

+0

Ok, je l'ai édité sans le vouloir pour refléter ceci;) – krosenvold