2011-08-23 3 views
1

En essayant de nettoyer un code assez crufty je réécris quelque chose de cette façon:jsp: élément crée <img></img> élément

<jsp:element name="img"> 
    <jsp:attribute name="src"> 
     <c:url value="${akamai}/images/prdLargerImage.gif"/> 
    </jsp:attribute> 
    <jsp:attribute name="alt">Zoom Image</jsp:attribute> 
</jsp:element> 

... mais a été surpris de découvrir que JSP généré ce code:

<img src="/images/prdLargerImage.gif" alt="Zoom Image"> 


      </img> 

Y a-t-il un moyen de le forcer à générer <img src="/images/prdLargerImage.gif" alt="Zoom Image"/>?

+0

Je dois préciser que j'ai également essayé le code ci-dessus avec tous les espaces anonymes supprimés manuellement. Le résultat était 'Zoom Image' – kojiro

Répondre

1

Vous pouvez configurer le conteneur pour couper que les espaces loin par l'entrée suivante dans web.xml:

<jsp-config> 
    <jsp-property-group> 
     <url-pattern>*.jsp</url-pattern> 
     <trim-directive-whitespaces>true</trim-directive-whitespaces> 
    </jsp-property-group> 
</jsp-config> 

Il n'y a rien que vous pouvez faire contre avoir un ballants </img> au lieu d'une courte étiquette <img/>. Cependant, si vous ciblez un conteneur compatible avec Servlet 2.4/JSP 2.0 (où EL dans le modèle de texte est supporté), je préfère réécrire cette partie de laideur (ce qui n'offre aucun avantage supplémentaire) comme suit:

<img src="${akamai}/images/prdLargerImage.gif" alt="Zoom Image" /> 
+0

C'est certainement une solution propre (si seulement j'étais sur JSP 2.0) dans tous les cas où je peux faire confiance 'akamai' pour contenir une valeur sûre XML/URL. En attendant, il me semble que je vais devoir écrire des fichiers JSP malformés ou avoir des balises 'img' open/close. – kojiro

+1

Le '' ne code pas XML/URL son 'value'. Il encode uniquement la «valeur» de tout «» imbriqué. – BalusC

Questions connexes