2011-08-23 60 views
1

在试图清理一些漂亮这些混沌的代码我改写的东西是这样的:JSP:元素创建<img></img>元素

<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> 

...却惊讶地发现,JSP生成的验证码

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


      </img> 

有没有办法强制它生成<img src="/images/prdLargerImage.gif" alt="Zoom Image"/>

+0

我应该指出,我也尝试了上面的代码,手动删除所有匿名空白。结果是'Zoom Image' – kojiro

回答

1

可以配置容器修剪是空白路程以下条目web.xml

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

有什么可以做,对具有悬挂</img>,而不是短标签<img/>。但是,如果你的目标是一个兼容Servlet 2.4/JSP 2.0的容器(在模板文本中支持EL),我宁愿重写一块丑陋的东西(它完全没有额外的优势),如下所示:

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

在我可以信任'akamai'包含XML/URL安全值的所有情况下,这绝对是一个干净的解决方案(如果我只是在JSP 2.0中)。与此同时,它看起来像我将不得不编写格式错误的XML JSP或打开/关闭'img'标签。 – kojiro

+1

”不对其“值”进行XML/URL编码。它只对所有嵌套的“”的“值”进行URL编码。 – BalusC