对于JSF2,使用<h:graphiImage>
优于普通<img>
(就性能而言,例如解析/渲染时间,可能的http缓存,如果有的话等等)有什么好处?
答案 0 :(得分:1)
您在<img>
元素上未获得server-side attributes。
答案 1 :(得分:0)
没有安全简便的方法来为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并希望您记得更改属性的hack生产部署。因此,您最好使用<img src="#{resource['images:myImage.png']}"/>
或更容易记住<h:graphicImage name="myImage.png" library="images"/>
。