对于JSF2,使用<h:graphiImage>
与正常<img>
(就性能而言,例如解析/呈现时间,可能的http缓存(如果有)等)的优点是什么?<h:graphicImage>优于<img>
回答
您没有在<img>
元素上获得server-sideattributes。
没有安全和简单的方法来设置src
属性的绝对路径。这很重要,因为您可能会从驻留在不同目录中的多个页面引用相同的图像。你想要保持相对位置的麻烦吗?当然,您可以使用<img src="#{resource['images:myImage.png']}"/>
来获得安全的绝对路径。难道使用<h:graphicImage name="myImage.png" library="images"/>
更简单吗?
什么是“安全”绝对路径?
您可以将您的图像保留在通常的资源文件夹之外,并将它们指定为绝对路径,例如:<img src="/myApp-web/faces/images/myImage.png"/>
,那就行了。但是,当你想部署你的应用程序会发生什么?你想让你的网址像http://www.mysite.com/faces/myPage.xhtml
?当然不是。您想要将上下文根设置为服务器根目录。但是,您不希望为生产部署更改所有img
标记,也不希望发生一些涉及从应用程序范围的bean获取基本URL的黑客攻击,并希望您记得更改生产部署的属性。所以你最好还是使用<img src="#{resource['images:myImage.png']}"/>
或者更容易记住<h:graphicImage name="myImage.png" library="images"/>
。
你总是可以在图像src之前放置上下文根目录:''这既安全又简单。 – Mohsen
啊,是的,没有想到,这是奇怪的,因为我自己做过一次。不过我认为使用没有EL的图像组件比使用EL的img标签更容易。 –
- 1. StructureMap中的优先级 - 对于<T>或AddRegistry <T>?
- 2. <a href="javascript:void(0);">优于<span>链接文本</span>
- 3. 优化<xsl:choose>许多<xsl:when>
- 4. 在bash中,<<<用于什么?
- 5. 以优化的方式计算0(x,y)对于0 <= x <= 1且1 <y <2的C++
- 6. List <>循环优化
- 7. operator <<:std :: cout << i <<(i << 1);
- 8. 超载运算符<<用于ostream
- 9. <html>元素大于<body>
- 10. 重载算子<<对于数组
- 11. Ostream <<和运算符 - =对于类?
- 12. 运算符<<用于嵌套类
- 13. << <<超载
- 14. For Loop。为什么它小于<不小于或等于<=?
- 15. <picture><source>相对于宽度<picture>
- 16. xcode中:<br> “msgpack ::运算<:用于建筑x86_64的[COUT <<]
- 17. 使用'<< 1'而不是'* 2'有没有优势?
- 18. 优雅的做法Dictionary <Key,Collection <Value>>
- 19. XCODE:对于<UIFileUploadFallbackRootViewController
- 20. 关于<rich:tab>
- 21. 使用>>,>,> |,||,| <,<,<<,<<
- 22. 使用下面一行</p> <pre><code><jsp:forward page = "<%=request.getContextPath()%>/Welcome.do"/> </code></pre> <p>关于JSP转发
- 23. 的Rails搞乱我的代码以“<<<<<<< HEAD”
- 24. 什么意思的符号在java中“<<<”“<< =”“<<”
- 25. <%$,<%@,<%=,<%#...这是怎么回事?
- 26. <值暂时不可用,由于优化> CFArrayGetValueAtIndex
- 27. 使用String []优于列表<String>有什么好处?
- 28. 当<ui:repeat>适用于X,但<c:forEach>适用于Y
- 29. PHP操作<<<
- 30. PHP表达<<< EOB
你的意思是像“渲染”?这可以通过ui:fragment来实现。没有更特别的东西吗?例如,当所有图像都由单个servlet进行流式传输时,它是否会带来任何优势。 – Mohsen
是的,“渲染”就是这样一个属性。我不确定你在寻找什么“特殊” - 这里没有魔法。 –